我有以下代码:
method1() throws Exception{
//throws an Exception
}
method2() throws Exception{
method1();
//do something
}
method3() throws Exception{
method2();
//do something
}
method4() throws Exception{
try{
method3();
//do something
}catch(Exception e){
//catch exception
}
}
如果在 method1() 中发生异常,它会冒泡到 method4() 并在那里被捕获。
但是,我在一些与此类似的问题的答案中发现,其中异常以以下方式引发:
method1() throws Exception{
//throws an Exception
}
method2() throws Exception{
try{
method1();
}catch(Exception e){
throw e;
}
}
重新抛出异常的最佳方法是什么?为什么更好?
在我阅读的有关“异常处理”最佳实践的文章中,他们说要早扔,晚抓。这是否意味着我们必须从内部方法中尽可能地重新抛出异常?
如果我的 method1() 抛出 SQLException,我应该只在 method4() 中捕获它还是在 method1() 本身中处理它?
更新: 比如说,如果方法 1() 中发生异常,我想在 UI 中显示一些消息。那么解决方案是什么?我应该把它冒泡还是返回一个表明问题的值?
method4() 将向 UI 显示一些消息。