PHP基础: 异常处理


看视频后记下来的笔记

异常(Exception)用于在指定的错误发生时改变脚本的正常流程。

1. 系统自带的异常处理

<?php
try{
    $num = 1;
    if($num == 1){
        echo "success";
    }else{
        throw new Exception("变量num不等于1", 1234);  //抛出异常对象
    }
}catch(Exception $e){  //类型约束, 只能传递Exception类实例化的对象
    echo "错误文件为: ";
    echo $e -> getFile();  //出现错误的文件
    echo ", 发生错误的行为: "
    echo $e -> getLine();  //输出错误行
    echo ", 错误代码为: ";
    echo $e -> getCode();  //错误码1234, 默认是0
    echo ", 错误信息为: ";
    echo $e -> getMessage();  //错误信息"变量不等于1"
    //echo $e;  //__toString
}

2. 自定义异常处理

<?php
//自定义异常类时要继承系统的异常处理类
class myException extends Exception{

    //可以自己定义异常处理流程, 比如拼接系统异常类的方法
    public function getAllInfo(){
        return "";
    }
}

try{

//捕捉时注意类型约束为自己定义的异常处理类名
}catch(myException $e){
    echo $e -> getAllInfo();
}

3. 捕捉多个异常

try{
    //捕捉多个异常处理要抛出多个异常对象, 不能是由一个异常处理类实例化的对象
    if($_GET['num'] == 1){
        throw new myException("这是自定义的异常处理");
    }elseif(){
        throw new Exception("这是系统的异常处理");
    }
//在捕捉时系统的异常处理分支要放到最后
//注意类型约束
}catch(myException $e){
    echo $e -> getAllInfo();
}catch(Exception $e){
    echo $e -> getMessage();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章