如何在构造函数中设置到期日期

如何在构造函数中设置到期日期

我正在尝试创建一个TravelCard类,该类还应该检查卡是否仍然可行(未过期)。但是我有这个错误

未报告的异常ParseExeption;必须被抓住或宣布被抛出

在这条线

this.expirationDate = sdf.parse(expiry);

如何在构造函数中设置到期日期?

我从未用过约会,就像有人会注意到那样。而且我在Java中还很陌生。
package something;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TravelCard {
    private double balance;
    private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    private Date expirationDate;
    private Date today = Calendar.getInstance().getTime();

    public TravelCard(double balance, String expiry){
        sdf.setLenient(false);
        this.balance = balance;
        this.expirationDate = sdf.parse(expiry);
    }

    public void pay(double price){
        if (today.before(expirationDate)){
            if(this.balance >= price){
                this.balance -= price;
            }
            else {
                System.out.println("Insufficient funds");
            }
        }
        else {
            System.out.println("Card expired");
        }
    }

    public double getBalance(){
        return balance;
    }

}

最佳答案

这意味着parse()方法将引发一个已检查的异常,即catch异常或throw

捕获异常的方法:

public void TravelCard(double balance, String expiry){
        sdf.setLenient(false);
        this.balance = balance;
         try {
             this.expirationDate = sdf.parse(expiry);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

引发异常的方式:
 public void TravelCard(double balance, String expiry) throws ParseException{

07-21 17:49