background image

<?php
    function test($val){
        if ($val>100){
            throw new Exception("提示信息:您输入的值过大");
        }
    }
    test(111);
?>
3.当一个异常抛出后,catch 语句块可以进行处理也可以不处理
以下是我用户注册功能的部分代码
try{
     //check forms filled in
     if(!filled_out($_POST)){
         throw new Exception('你还没有填写表单,请回去填写');
     }
     //check email address not valid
     if(!check_email($email)){
        throw new Exception('邮件的格式不正确');
     }
     //检查密度的长度是否大于 6
     if(strlen($passwd<6)){
         throw new Exception('密度的长度应该大于 6');
     }
     //检查两次密码是否相等
     if($passwd!=$passwd1){
         throw new Exception('两次密码不一样,请重新输入');
     }
     //检查用户名的长度是否正确
     if(strlen($username)>16){
         throw new Exception('用户名的长度不符,请重新输入');
     }
  
 } catch(Exception $e){
     echo $e->getMessage(); //输出异常信息。
 }
 
php 对异常的处理与 java 一样,用到的是 try{}catch(){}
定义顶级异常处理器用到的函数是
set_exception_handler("My_exception");
这里的

My_expection 是开发者自定义的异常处理函数,既顶级异常处理器,只有当程序中

没有函数来处理异常才有顶级异常处理器来处理异常,如果没有定义顶级异常处理器,则
由系统默认的异常处理器来处理异常
举例说明:
代码如下