在java的构造函数中使用try-and-catch块是一种好的实践吗

在java的构造函数中使用try-and-catch块是一种好的实践吗,java,constructor,exception-handling,Java,Constructor,Exception Handling,我们可以在构造函数中使用try-and-catch块,还是可以从构造函数中抛出异常,或者在java中向构造函数抛出异常 在java中,将try-and-catch-block、throw-and-throw放入构造函数是一种好做法还是一种坏做法? 请引导我通过,等待答复,并提前感谢您 在构造函数中引发异常没有什么错,就像在其他地方引发异常一样。您应该只处理那些可以恢复的异常,就像在代码的任何其他部分中一样。在某些情况下,例如初始化JSONObject,您可能必须捕获或抛出异常。只需确保正确处理此

我们可以在构造函数中使用try-and-catch块,还是可以从构造函数中抛出异常,或者在java中向构造函数抛出异常 在java中,将try-and-catch-block、throw-and-throw放入构造函数是一种好做法还是一种坏做法?
请引导我通过,等待答复,并提前感谢您

在构造函数中引发异常没有什么错,就像在其他地方引发异常一样。您应该只处理那些可以恢复的异常,就像在代码的任何其他部分中一样。在某些情况下,例如初始化JSONObject,您可能必须捕获或抛出异常。只需确保正确处理此异常

这不是一个好做法。 但是您有一条语句触发了
异常
,而您不能
抛出异常
考虑下面的例子。

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);

}
}

错误的做法,但它不是黑或白的。并且有文档记录,以防抛出异常。
捕获异常(…)
肯定会导致下一次代码审查失败,即使这只是一个快速而肮脏的示例,也应该使用正确的
数字格式异常
,IMHO。是的,现在感谢您的建议快乐兄弟