Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Try块中,为多个异常创建一个捕获还是为每个异常创建一个捕获更好?_Java_Exception Handling - Fatal编程技术网

Java 在Try块中,为多个异常创建一个捕获还是为每个异常创建一个捕获更好?

Java 在Try块中,为多个异常创建一个捕获还是为每个异常创建一个捕获更好?,java,exception-handling,Java,Exception Handling,我很好奇哪一个更实用,我们需要在哪些情况下使用第一个,在哪里使用第二个?例如,在Java7中: first.java try { /* some code that throws these exceptions */ } catch (NoSuchAuthorityCodeException e) { throw new MyAPIException("Something went wrong", e); } catch (FactoryException e) { thr

我很好奇哪一个更实用,我们需要在哪些情况下使用第一个,在哪里使用第二个?例如,在Java7中:

first.java

try {
  /* some code that throws these exceptions */
} catch (NoSuchAuthorityCodeException e) {
    throw new MyAPIException("Something went wrong", e);
} catch (FactoryException e) {
    throw new MyAPIException("Something went wrong", e);
} catch (MismatchedDimensionException e) {
    throw new MyAPIException("Something went wrong", e);
} catch (TransformException e) {
    throw new MyAPIException("Something went wrong", e);
}
second.java

try {
  /* some code that throws these exceptions */
} catch (NoSuchAuthorityCodeException | FactoryException| MismatchedDimensionException | TransformException e) {
    /*handle all exceptions*/;
}

您是否需要以不同的方式处理每个异常?如果是,则具有不同行为的不同捕捉块。如果希望以相同的方式处理所有异常,一个catch块就可以了。

是否需要以不同的方式处理每个异常?如果是,则具有不同行为的不同捕捉块。如果您希望以相同的方式处理所有异常,一个catch块就可以了。

TangledUpInBlue完美地回答了这个问题,如果您只需要对不同类型的操作进行不同的处理并希望对不同类型的操作执行不同的操作,请使用单个catch

否则,使用父类
异常
,一对一:

try{

}
catch(Exception e){

}

TangledUpInBlue完美地回答了这个问题,如果您需要以不同的方式处理它,并且希望在不同类型的操作上执行不同的操作,那么请使用单独的捕获

否则,使用父类
异常
,一对一:

try{

}
catch(Exception e){

}

这取决于您希望如何处理每个错误。您希望每个错误都发生相同的情况,还是每个错误都需要一个特定的错误?@Mena它们都可以命名为
e
,这在本例中不是问题。这取决于您希望如何处理每个错误。您希望每个错误都发生相同的情况,还是需要每个错误都有一个特定的错误?@Mena它们都可以命名为
e
,这在本例中不是问题。