php的异常处理基础方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-03-19 15:19:05 浏览: 评论:0
下面来介绍一下关于php中异常处理的方法介绍,有需要学习的异常处理的朋友可参考本教程.
以下是引用片段:
1.允许一个方法给出一个出错标记给客户代码
2.提供程序错误的详细信息
3.让你同时判断多个出错条件,将你的错误报告和程序处理流程分开.
4.返回值必须是独立的类型,不会与正常返回的类型相混淆
两个实例掌握PHP异常处理
例【1】用 try...catch
实例代码如下:
- /* 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 '继续执行';
- ?>
上面一个朋友说的,下面我自己来写了点程序练习一下:
实例代码如下:
- $a = 20;
- // 使用常规catch的例子
- try
- {
- if($a == 1)
- {
- throw new Exception("I am 1", 1);
- }
- elseif ($a == 2)
- {
- throw new Exception("I am 2", 3);
- }
- elseif ($a == 3)
- {
- throw new Exception("I am 3", 3);
- }
- elseif ($a == 4)
- {
- throw new Exception("I am 4", 4);
- }
- else
- {
- throw new 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)
- {
- throw new A("I am A", 1);
- }
- elseif ($a == 2)
- {
- throw new B("I am B", 2);
- }
- else
- {
- throw new 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}
Tags: php 异常处理 基础方法
相关文章
- ·PHP 是什么?(2013-11-12)
- ·Php.ini文件位置在哪里 Php.ini文件找不到(2013-11-12)
- ·PHP 数据类型(2013-11-12)
- ·php 获取当前脚本的url(2013-11-12)
- ·php技术生成静态页面的实现(2013-11-13)
- ·缺陷月项目启动 披露PHP脚本语言漏洞(2013-11-13)
- ·在PHP中全面阻止SQL注入式攻击(2013-11-13)
- ·php生成随机密码的几种方法(2013-11-13)
- ·PHP中使用FCKeditor2.3.2配置(2013-11-13)
- ·如何使用PHP开发高效的WEB系统(2013-11-13)
- ·php:树形结构的算法(2013-11-13)
- ·php4和php5区别(2013-11-13)
- ·php数据库连接(2013-11-13)
- ·如何正确理解PHP的错误信息(2013-11-13)
- ·php页面漏洞分析及相关问题解决(2013-11-13)
- ·当在连接PHP时,抱怨一些数值没有定义参考?(2013-11-27)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)