首页 > 技术文章 > PHP异常处理

seaBiscuit0922 2016-08-31 17:36 原文

一、异常处理——可以有效地控制多条出现错误或异常的代码

  • 基本语法如下: 
try{
    //可能出现异常的代码
  }
  catch(Exception $e){
    //对异常处理
    //1、自己处理
    //2、不作处理,继续抛出
  }

     Exception 是PHP内置的异常处理类

    

  • 示例
<?php    
    function addUser($name){
        if($name=="abc"){
            echo "添加成功!";
        }else{
            //抛出异常
            throw new Exception("添加失败!");
        }
    }
    function updateUser($name){
        if($name=="abc"){
            echo "修改成功!";
        }else{
            //抛出异常
            throw new Exception("修改失败!");
        }
    }

    try{
        addUser("abc");
        updateUser("Ben");
    }
    //捕获异常
    catch(Exception $e){
        echo "失败信息:".$e->getMessage();
     //throw $e; //捕获后也可以继续抛出 }
?>

运行结果如下:

二、顶层异常处理——捕获没有被catch的异常

  • 基本用法如下:
<?php
     function myException($exception){
             echo "异常信息:".$exception->getMessage();
     }
     set_exception_handler("myException");
     throw new Exception("没有捕获的异常");
?>
  • 示例
 1 <?php
 2     //自定义一个顶级异常处理函数
 3     function myException($exception){
 4         echo "异常信息:".$exception->getMessage();
 5     }
 6     //修改默认的顶级异常处理函数(器)
 7     set_exception_handler("myException");
 8 
 9     function a($age){
10         if($age>100)
11             throw new Exception("年龄过大!");
12     }
13 
14     a(120);   
15 ?>

结果:

三、总结:如果抛出了异常,就必须捕获它,或者使用顶级异常处理器处理。

    

推荐阅读