为啥使用Try,Catch捕获异常,程序依然Crash

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥使用Try,Catch捕获异常,程序依然Crash相关的知识,希望对你有一定的参考价值。

1.在catch的时候需要指定捕获的异常类型。
如果指定的类型不正确,异常会继续向外抛出。可以使用catch(...) 的方式来捕获全部异常。
2.发生异常的代码需要包含在try语句块种,在try语句块外部的异常是不会被捕获的。
参考技术A VisualStudio开发环境就是利用一个进程编辑源文件,并利用另一个进程完成编译工作的应用程序。在WindowsNT/2000/XP操作系统下,我们可以通过任务管理器在任意时间查看所有的应用程序和进程。尽管只打开了几个应用程序,但是通常情况下

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捕获异常,程序依然Crash的主要内容,如果未能解决你的问题,请参考以下文章

为啥 iOS 开发中很少用到 try catch 语句

用powershell的try catch, 为啥try里面出现异常,catch 捕获不到呢?

php中,用try/catch捕获了异常,为啥还会有警告?有没有办法去掉呢?

2019-12-2 异常捕获

使用try和catch捕获异常

JAVA中try catch捕获异常的问题