try使用多个catch捕获不同的异常

Posted 凌雨尘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了try使用多个catch捕获不同的异常相关的知识,希望对你有一定的参考价值。

目的:

使用多个catch捕获不同的异常

eg:

<?php
//创建三个Exception
class AException extends Exception{
    function printMsg(){
        echo "This is AException.";
    }
}
class BException extends Exception{
    function printMsg(){
        echo "This is BException.";
    }
}class CException extends Exception{
    function printMsg(){
        echo "This is CException.";
    }
}


//一个try,多个catch捕获不同的异常
try{
    $flag = 1;
    switch ($flag)
    {
        case 1:
            throw new AException(‘AException:‘);
            break;
        case 2:
            throw new BException(‘BException:‘);
            break;
        case 3:
            throw new CException(‘CException:‘);
            break;
        default:
            break;
    }
}
catch(AException $e){
    echo $e->getmessage();
    $e->printMsg();
}
catch(BException $e){
    echo $e->getmessage();
    $e->printMsg();
}
catch(CException $e){
    echo $e->getmessage();
    $e->printMsg();
}
catch(Exception $e){
    //这个catch主要是捕获漏网之鱼
    echo $e->getmessage();
}

 

输出:

AException:This is AException.

 

以上是关于try使用多个catch捕获不同的异常的主要内容,如果未能解决你的问题,请参考以下文章

php try catch 捕获哪些错误

2019.3.23 捕获异常

异常和TCP通讯

异常处理

php 异常

Java异常处理机制