首页 > php开发 > php的异常处理基础方法

php的异常处理基础方法

下面来介绍一下关于php中异常处理的方法介绍,有需要学习的异常处理的朋友可参考本教程.

以下是引用片段:

1.允许一个方法给出一个出错标记给客户代码 

2.提供程序错误的详细信息 

3.让你同时判断多个出错条件,将你的错误报告和程序处理流程分开.

4.返回值必须是独立的类型,不会与正常返回的类型相混淆

两个实例掌握PHP异常处理

例【1】用 try...catch

实例代码如下:

<?php
/* PDO连接mysql数据库,如果没看过PDO,先看下PDO的构造函数,要不跳过例1看例2 */  
$dsn = 'mysql:host=localhost;dbname=testdb';  
$user = 'dbuser';  
$password = 'dbpass';  
try {  
$dbh = new PDO($dsn, $user, $password); //创建数据库连接对象容易出现异常  
echo '如果上面出现异常就不能显示我了';  
} catch (PDOException $e) {  
echo 'Connection failed: ' . $e->__toString();  
}  
?>

实例代码如下:

<?php
//例[2] try..cathc 和 throw一起用
try {
    $error = '我抛出异常信息,并且跳出try块';
    if (is_dir('./tests')) {
        echo 'do sth.';
    } else {
        throw new Exception($error, 12345);
    }
    echo '上面有异常的话就轮不到我了!~<br />', "n";
}
catch(Exception $e) {
    echo '捕获异常: ', $e->getMessage() , $e->getCode() , "n<br />"; //显示$error和123456
    
}
echo '继续执行';
?>

上面一个朋友说的,下面我自己来写了点程序练习一下:

实例代码如下:

<?php
$a = 20;
// 使用常规catch的例子
try {
     if($a == 1)   {
          thrownew Exception("I am 1", 1);
         
    }
     elseif($a == 2)   {
          thrownew Exception("I am 2", 3);
         
    }
     elseif($a == 3)   {
          thrownew Exception("I am 3", 3);
         
    }
     elseif($a == 4)   {
          thrownew Exception("I am 4", 4);
         
    }
     else  {
          thrownew Exception("Who am I ?", 0);
         
    }
}
catch(Exception $e) {
     if ($e->getCode() == 1)   {
          echo "1 : " . $e;
         
    }
     elseif($e->getCode() == 2)   {
          echo"2 : " . $e;
         
    }
     elseif($e->getCode() == 3)   {
          echo"3 : " . $e;
         
    }
     elseif($e->getCode() == 4)   {
          echo"4 : " . $e;
         
    }
     else  {
          echo"0 : " . $e;
         
    }
}
echo " 
 
-------------------------------------------------------------------------------- 
";
// 使用不同的扩展异常类的例子
class A extends Exception {
};
class B extends Exception {
};
try {
     if($a == 1)   {
          thrownew A("I am A", 1);
         
    }
     elseif($a == 2)   {
          thrownew B("I am B", 2);
         
    }
     else  {
          thrownew Exception("Who am I ?", 0);
         
    }
}
catch(A $e) {
     echo "1 : " . $e;
}
catch(B $e) {
     echo "2 : " . $e;
}
catch(Exception $e) {
     echo "0 : " . $e;
}
?>

输出如下:

以下是引用片段:

0 : exception 'Exception' with message 'Who am I ?' in |
D:WebPHPWWWnewtest.php:24 Stack trace: #0 {main}
----------------------------------------------------------------------------
0 : exception 'Exception' with message 'Who am I ?' in D:WebPHPWWWnewtest.php:69 Stack trace: #0 {main}


永久地址:http://www.phprm.com/develop/fs2332.html

转载随意~请带上教程地址吧^^

标签:php 异常处理 基础方法

相关文章

发表留言