【发布时间】:2015-01-22 09:17:50
【问题描述】:
我有一个方法,它有一个再次调用子程序的子程序。最后一个子程序可以抛出异常。谁负责捕获异常?或者谁能捕捉到异常?
那么异常是否在调用堆栈中传递,直到方法捕获它们?还是只有调用方法负责捕捉子程序的异常?
【问题讨论】:
标签: c# exception-handling
我有一个方法,它有一个再次调用子程序的子程序。最后一个子程序可以抛出异常。谁负责捕获异常?或者谁能捕捉到异常?
那么异常是否在调用堆栈中传递,直到方法捕获它们?还是只有调用方法负责捕捉子程序的异常?
【问题讨论】:
标签: c# exception-handling
全部 3 个
每个程序都应该处理自己的错误,然后如果任何程序依赖于另一个程序,它们应该确保它们不会因为该依赖项中发生的错误而崩溃。
可以说,最重要的是程序处理自己的错误,因为它也可以在其他程序中使用。
你的 main 方法不需要担心导致最终程序崩溃的原因(“sub sub method”),它只需要知道 sub 方法崩溃的原因。如果它出于某种原因确实 很重要,那么最终程序崩溃的原因可能与您开始时传入的参数不同。最终程序会说因为X而崩溃,中间程序要注意这一点,发现是因为第一个程序的参数Y,只报告给第一个程序(根据需要)。
您需要避免在最终程序和第一个程序之间创建依赖关系,因为这将导致最终程序更新时维护的噩梦。
【讨论】: