何时躲避异常以及何时处理它们

hha*_*fez 1 exception-handling exception

在决定是否让方法避免异常时(例如:让异常传播)或者在收到异常后处理它时,你使用了什么guidlines?

这是我想要问的一个例子

如果我有三个方法method1,2,3和3. Method1调用Method2调用Method3.并且只有在方法3中抛出异常才能让异常传播如下(请原谅我的伪java;))

   method1 {
        try {
            call method2;
        } catch (exception e) {
            doErrorProcessing;
        }
    }

    method2 throws exception {
        call method3;
    }

    method3 throws exception {
        call readFile;
    }
Run Code Online (Sandbox Code Playgroud)

一旦它被提出,我应该何时处理异常,如下所示

   method1 {
        call method2;
    }

    method2 {
        call method3;
    }

    method3 {
        try {
            call readFille
        } catch (exception e) {
            doErrorProcessing;
        }
    }
Run Code Online (Sandbox Code Playgroud)

pax*_*blo 7

我遵循的规则:

如果我可以修复异常,或者使导致异常的问题无效(有时这意味着完全忽略它),我会处理它.否则它会被传递到下一个级别.

而且我总是尝试尽可能地将异常修复为树中的异常(即在它们发生之后尽快) - 这样可以对异常处理进行本地化处理,并避免在您的上层使用大的honkin'异常处理程序.