java - Java尝试在构造函数中捕获
问题描述
我写了这个返回财政年度的类:
public class Fiscal {
private Calendar calendar;
public FiscalDate(String date) {
try {
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date formattedDate = formatter.parse(date);
this.calendarDate = Calendar.getInstance();
this.calendarDate.setTime(formattedDate);
}
catch (ParseException e) {
System.out.print(e);
}
}
}
我正在使用它,如下所示:
String test = new Fiscal("2020-03-31").display();
一切正常,我只是想知道我在构造函数中的 try 和 catch 是否有任何问题?有什么方法可以改进这门课吗?
解决方案
是的,就像@Johnny Mopp 在评论中所说,你不应该默默地捕捉异常,而是抛出异常,让实现该类的人选择如何处理它。
public FiscalDate(String date) throws ParseException {
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date formattedDate = formatter.parse(date);
calendarDate = Calendar.getInstance();
calendarDate.setTime(formattedDate);
}
try {
FiscalDate date = new FiscalDate("my date string");
// some code that utilizes date
} catch (ParseException exception) {
// darn, something went wrong, time to handle it!
}
推荐阅读
- amazon-web-services - grafana 中的 dynamodb aws 指标有问题
- c# - 计算两个方向之间的差异
- angular - Rxweb - 如何将数据绑定到具有 @propArray 装饰器的 formGroup
- flatbuffers - 为什么需要编译flatc可执行文件?
- swift - UIViewRepresentable UITextField 在连接到 ObservableObject 的 @Published 属性时会跳过第一个字符
- macos - 这个包不兼容
- flutter - Flutter 中的 AnimatedBuilder
- android - 我正在使用 SmartyAd SDK 并收到错误项目未构建
- matlab - AWGN、Rayleigh 和 Rician 频道上的 BPSK、QPSK Mod
- r - 从每日回报到不适用的每周回报