子程序调用子程序的异常处理

Exception handling of subprogram calling subprogram

我有一个方法,它有一个再次调用子程序的子程序。最后一个子程序可以抛出异常。谁负责捕获异常?或者谁能​​捕捉到异常?

那么异常是在调用堆栈中向上传递直到方法捕获它们吗?还是只有调用方法负责捕获子程序的异常?

全部 3

每个程序都应该处理自己的错误,然后如果任何程序依赖于另一个程序,它们应该确保它们不会因为该依赖项中发生错误而崩溃。

可以说,最重要的是处理自身错误的程序,因为它也可能在其他程序中使用。


你的main方法不需要担心到底发生了什么导致程序崩溃("sub sub method"),它只需要知道sub方法崩溃的原因。如果它 确实 由于某种原因很重要,那么最终程序崩溃的原因可能归结为与您一开始传入的参数不同。最后的程序会说因为 X 而崩溃,中间的程序应该注意到这一点,发现它是因为第一个程序的参数 Y 并且只有向第一个程序报告(根据需要)。

您需要避免在最终程序和第一个程序之间创建依赖关系,因为这会导致最终程序更新时的维护噩梦。