如果我有这样的代码:
void a() { try { b(); } catch (MyException) { // Handle any problems that occurred in b(c(d())) } } void b() { c(); // Do something else } void c() { d(); // Do something else } void d() { // Do something, throw a MyException if it fails }
假设在任何时候都不需要清理,最好在c()中调用d()和在b()中调用c()时调用try {} catch {throw;},还是认为OK让d()的异常在没有任何介入的try/catch块的情况下自然地冒泡到a()"自然"?
我认为额外的try/catch块可以作为一种"文档",但它们似乎是多余的,所以我只是想知道其他人会认为最好的方法.
对不起,如果这有点太基础了,我试图了解异常,但我似乎对它们没有好感觉.
让它传播直到你可以处理它.如果你无法处理它,就没有必要抓住它.所以问题是,你能否有效地处理c()
方法中的异常?