【发布时间】:2017-02-22 07:12:23
【问题描述】:
我们可以在构造函数中使用try和catch块吗,或者我们可以从构造函数中抛出异常,或者在java中的构造函数中抛出异常 这是在java中尝试和捕获块,抛出和抛出构造函数的好习惯还是不好的做法? 请指导我完成,等待回复并提前感谢您。
【问题讨论】:
-
不好的做法,但不是非黑即白。
标签: java constructor exception-handling
我们可以在构造函数中使用try和catch块吗,或者我们可以从构造函数中抛出异常,或者在java中的构造函数中抛出异常 这是在java中尝试和捕获块,抛出和抛出构造函数的好习惯还是不好的做法? 请指导我完成,等待回复并提前感谢您。
【问题讨论】:
标签: java constructor exception-handling
在构造函数中抛出异常并没有错,就像在其他任何地方抛出异常一样没有错。您应该只处理那些可以恢复的异常,就像在代码的任何其他部分中所做的那样。在某些情况下,例如初始化 JSONObject,您可能必须捕获或抛出异常。只需确保正确处理此异常
【讨论】:
这不是一个好习惯。
但是你有一个声明,它比throws Exception 更能激发Exception
考虑下面的例子。
public class Test {
static int no;
Test() throws Exception {
no=Integer.parseInt("5");
}
public static void main(String[] args) {
try{new Test();}catch(NumberFormatException error){
no=0; }
System.out.println(no);
}
}
【讨论】:
catch Exception(..) 是下一次代码审查失败的肯定方法,即使这只是一个快速而肮脏的例子,应该使用正确的NumberFormatException,恕我直言。