MethodA调用MethodB,然后依次调用MethodC。
在MethodB或MethodC中没有异常处理。但是在MethodA中有异常处理。
在MethodC中发生异常。
现在,该异常正在冒泡到MethodA,该方法可以适当地对其进行处理。
这有什么问题?
在我看来,在某个时候调用者将执行MethodB或MethodC,并且当这些方法中确实发生异常时,从这些方法内部处理异常中可以获得什么,这实际上只是一个try / catch / finally块,而不仅仅是让他们冒泡给被呼叫者?
围绕异常处理的陈述或共识是,仅在执行不能继续执行时抛出该异常。我明白了。但是,为什么不在链的更深处捕获异常,而不是让try / catch块一直向下传播。
当您需要释放资源时,我会理解的。完全是另一回事。
try-catch
块。
Result<T>
类型(一种存储计算结果或错误的类型),然后从其他抛出函数返回它。在堆栈中传播错误将需要读取每个返回值,检查其是否为错误,如果是则返回错误。