首页 > 代码库 > PHP面向对象程序设计之异常处理

PHP面向对象程序设计之异常处理

1.内置的异常处理类Exception
<?php

try{
    $num = 2;    
    if($num == 1){
        echo "success";
    }else{
        throw new Exception(); //抛出异常,Exception是一个类名
    }    
}catch(Exception $e){ //捕获异常
    echo $e -> getFile();
    echo $e -> getLine();
    echo $e -> getCode();
    echo $e -> getMessage();    
}
?>

2. 自定义异常处理类,继承内置的Exception类
<?php 

class myException extends Exception{
    
    public function getAllInfo(){
        return "异常发送的文件为:{$this -> getFile()},异常发生的行数为:{$this -> getLine()},异常的信息为:{$this -> getMessage()},异常的代码为:{$this -> getCode()}";
    }
}

try{
    if($_GET[num] == 5){
        throw new myException("这是一个自定义的异常",123456); //抛出一个异常,就自动跳到catch
    }
    echo "success";
}catch(myException $e){
    echo $e -> getAllInfo();
}
?>

3.捕捉多个异常,因为有内置的异常处理类,也可以有自己自定义的异常处理类
<?php 
class myException extends Exception{
    
    public function getAllInfo(){
        return $this -> getMessage();
    }
}

try{
    if($_GET[num] == 1){
        throw new myException("这是自定义的异常处理类");
    }elseif($_GET[num] == 2){
        throw new Exception("这是系统的异常处理");
    }
    echo "success";
}catch(myException $e){
    echo $e -> getAllInfo();
    echo "111";
}catch(Exception $e){
    echo $e -> getMessage();
    echo "222";
}
?>

 

PHP面向对象程序设计之异常处理