Bog*_*dru 2 c# java exception-handling
我有一个看起来像这样的代码(抱歉Java支架样式):
class SomeClass {
public static void doSomethingRisky() {
try {
SomeRiskyFunction();
} catch (Exception e) {
throw e;
}
}
}
class MainClass {
public void callSomethingRisky() {
try {
SomeClass.doSomethingRisky();
} catch (Exception e) {
FinallyHandleTheException(e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,SomeClass将是一个库,我想设计它,以便所有异常将由调用程序处理(谁可能会或可能不会选择显示有关异常的消息).
我的问题是关于try/catch&throw在doSomethingRisky()from中的使用SomeClass.这是多余的还是有必要的?我的意思是,如果我将其关闭并且该函数在运行时遇到异常,它是否会使程序崩溃,因为没有捕获THAT函数内部的异常,或者它是否仍然将它传递给调用者(callSomethingRisky()),在那里它被优雅地处理?
Java的相同问题.谢谢!
Mar*_*ell 17
将try/ catch用throw e;在doSomethingRisky不正是一两件事:它破坏了堆栈跟踪信息.这可能不是你想要的,所以try/ catch应该被删除 - 它已经按预期冒出来了.
对于信息,如果它只是throw;(而不是throw e;)那么它只是多余的,而不是破坏性的.
| 归档时间: |
|
| 查看次数: |
203 次 |
| 最近记录: |