我正在为一个框架开发一个Java插件.
我编写了我的代码,其入口点函数如下所示(考虑这是起点,主函数)
function entryPoint()
{
try{
//some code block
subFunction1();
subFunction2();
}
catch(Exception e) {}
catch(IOException ioe) {}
catch(NullPointerException npe){}
}
function subFunction1() throws IOException
{
//some code
}
function subFunction2() throws NullPointerException
{
//some code
}
Run Code Online (Sandbox Code Playgroud)
所以这个想法是,所有的子函数都抛出了主要函数的特定异常,我们在主要函数中捕获这些异常并进行处理.
这种方式是否正确?如果没有,请建议更好的方法.
kos*_*tja 10
catch应更改语句的顺序.由于第一个catch将匹配all Exceptions,因此永远不会触发以下两个.
NPE在大多数情况下,A 是意外的,不可恢复的.捕获它意味着应用程序能够从中恢复并运行.真的是这样吗?
即使NPE可以恢复,也可以选择检查!= null而不是依赖命令流的异常.这是出于概念上的原因(基于异常的命令流需要更多代码,可读性更低,意图通常不清楚)以及性能原因.
所有人Exceptions都被吞下 - 没有记录或重新抛出.这样,没有人会知道是否以及什么时候出错,因为没有记录异常.在大多数情况下,用户,其他开发人员和维护人员都希望几乎所有异常都是非常特殊的,因此需要记录.
| 归档时间: |
|
| 查看次数: |
219 次 |
| 最近记录: |