0

你好。是否可以在PHP中使用这样的代码?

try {
  throw new InternalException('Internal');
} catch (InternalException $e) {
  throw new Exception('Internal To global');
} catch (Exception $e){
  print $e->getMessage();
}

class InternalException extends Exception {
  // some code here
}
4

4 回答 4

1

try...catch而是嵌套多个。

try {
    throw new InternalException('Internal');
} catch (InternalException $e) {
    try {
        throw new Exception('Internal To global');
    } catch (Exception $e){
        print $e->getMessage();
    }
}

class InternalException extends Exception {
  // some code here
}

请参阅PHP:异常 - 手册

于 2013-09-25T08:40:35.123 回答
1

“转换”异常没有意义。如果您不会处理它们,请不要扔它们。

您可以通过这种方式捕获不同的异常:

try {
    throw new InternalException();
} catch (HardwareException $e) {
} catch (InternalException $e) {
    // this catch block will be executed
} catch (Exception $e) {
    // all other exceptions
}
于 2013-09-25T08:49:19.733 回答
0

是的,您可以单独捕获特定异常。

于 2013-09-25T08:31:42.627 回答
0

只有在try块中抛出异常时才会捕获异常。catch块中抛出的异常不会catch在同一try..catch语句的其他兄弟块中捕获。您必须将整个东西嵌套在另一个外部try..catch块中才能捕获它们。

于 2013-09-25T08:40:03.503 回答