已关闭 。这个问题是基于观点的。它当前不接受答案。
想改善这个问题吗? 更新问题,以便通过编辑此帖子以事实和引用的形式回答。
4年前关闭。
我一直在决定如何处理应用程序中的异常。
如果我的异常问题很大程度上来自于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 / catching来注意代码是否腐烂,或者不要对异常给予尊重(异常警告系统,还有什么需要警告的?)。
另外,这是m3rLinEz的不错选择。
我倾向于同意安德斯·海斯伯格(Anders Hejlsberg)和您的看法,即大多数致电者只关心手术是否成功。
通过此注释,它提出了一些在处理异常时要考虑的问题:
您似乎想捕获异常并将其转换为错误代码,这对我来说似乎很奇怪。当Java和C#中的默认值是异常时,为什么您认为调用者更喜欢错误代码?
至于您的问题: