最佳答案
我无法决定如何在应用程序中处理异常。
如果我的异常问题来自于1)通过远程服务访问数据或2)反序列化 JSON 对象。不幸的是,我不能保证这两个任务中的任何一个都能成功(切断网络连接,不受我控制的畸形 JSON 对象)。
因此,如果遇到异常,我只需在函数中捕获它,然后将 FALSE 返回给调用者。我的逻辑是,打电话的人真正关心的是任务是否成功,而不是为什么不成功。
下面是一些典型方法的示例代码(使用 JAVA)
public boolean doSomething(Object p_somthingToDoOn)
{
boolean result = false;
try{
// if dirty object then clean
doactualStuffOnObject(p_jsonObject);
//assume success (no exception thrown)
result = true;
}
catch(Exception Ex)
{
//don't care about exceptions
Ex.printStackTrace();
}
return result;
}
我认为这种方法很好,但是我真的很想知道管理异常的最佳实践是什么(我真的应该在调用堆栈中一直冒泡显示异常吗?).
关键问题摘要:
跟进/编辑
感谢所有的反馈,在网上找到了一些关于异常管理的优秀资源:
似乎异常管理是根据上下文而变化的事情之一。但最重要的是,它们应该在系统内管理异常的方式上保持一致。
此外,还要注意通过过多的 try/catch 或不给予异常它的尊重而导致的代码腐烂(一个异常是警告系统,还需要警告什么?).
而且,这是来自 M3rLinEz的一个很好的选择注释。
我倾向于同意安德斯·海尔斯伯格和你的观点 小心手术是否成功。
从这个评论中,它提出了一些在处理异常时需要考虑的问题: