发表时间:2015-05-27来源:网络
PHP的异常是什么?
PHP 5 提供了一种新的面向对象的错误处理方法。异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。
一般使用方法:
[php]
<?php
function test() {
throw new Exception("异常啦");
}
try {
test();
} catch (Exception $e) {
echo $e->getMessage();
}
throw new Exception('XXX') : 抛出一个异常
try : 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
Catch:代码块会捕获异常,并创建一个包含异常信息的对象
自定义异常类:
[php]
class myException extends Exception {
public function errorMessage() {
$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()
.': <b>'.$this->getMessage().'</b> is not a valid E-Mail address';
return $errorMsg;
}
}
try {
throw new myException($email);
}catch (myException $e){
echo $e->errorMessage();
}
myException类是一个自定义的异常类,必须继承Exception
Exception是一个PHP自带的内置的异常类,默认情况下会使用PHP默认的内置异常类,但是我们可以通过自定义的方式,自定义成满足自己需求的异常类。
使用自定义异常类的时候,throw new myException 抛出异常也需要抛出自定义的异常类类名
catch的时候也需要捕获自定义的异常类
如果抛出了异常而不捕获处理的话,就会发生PHP代码报错,如下:
[sql]
Fatal error: Uncaught exception 'myException' in D:/AppServ/www/cctv/trunk/index.php:12 Stack trace: #0 {main}
thrown in D:/AppServ/www/cctv/trunk/index.php on line 12
PHP默认异常类详细:
[php]
class exception
{
protected $message = 'Unknow exception'; //自定义的异常信息
protected $code = 0; //定义的异常代码
protected $file; //发生异常的PHP程序名
protected $line; //发生异常的PHP行号
//用于传递用户自定义异常信息和用户自定义异常代码的构造函数
function __construct($message=null,$code=0);
final function getMessage();
final function getCode();
final function getFile();
final function getLine();
final function getTrace(); //以数组形式返回异常传递的路线
final function getTraceAsString(); //返回格式化成字符串的getTrace函数信息
function __toString(); //可重载,用于返回可输出的字符串
}
可以看到PHP默认异常类中有很多自定义变量和方法
$e->getMessage 一般是获取错误信息
$e->getCode() 一般是获取错误码
$e->getFile() 获取错误的文件信息
$e->getLine() 获取错误行数
$e->getTrace() 异常经过的文件路径
__toString() 一般可以重载,用于返回可输出的字符串
PHP异常类的作用:
捕获异常,一般可以在MYSQL链接不上,或者业务逻辑错误的时候,抛出异常,在代码最顶端接收。
异常分析处理。可以在出异常的时候,捕获到异常的错误信息,写入日志。
可以返回友好化的提示信息,例如WEB端可以返回页面形式,也可以在AJAX端返回JSON数据格式。
原则:如果异常抛出了,就必须捕获它,否则会PHP报错。
CI框架连接数据库配置操作以及多数据库操作
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
C语言关键字及其解释介绍 C语言32个关键字详解
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
将视频设置为Android手机开机动画的教程
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
PHP中include和require区别之我见
PHP中的(++i)前缀自增 和 (i++)后缀自增
php递归返回值的问题
新浪微博app官方版下载v14.10.3 安卓最新版本
205.9M |社交娱乐
乐刻运动健身平台官方版下载v6.10.0 安卓最新版
107.4M |生活服务
智通人才网招聘网东莞官方版下载v10.31.1 安卓最新版本
173.0M |生活服务
睿住社区app下载v3.2.0 安卓版
187.9M |生活服务
fnkvision监控app下载v1.0.3 安卓版
131.6M |生活服务
接力学习app小学版下载v5.0.7.3 安卓官方版
120.3M |学习教育
鱼络圈官方版下载v1.2.7 安卓版
100.2M |影音播放
公务员考试对题库app下载v3.1.9 安卓最新版
114.0M |学习教育
2014-09-05
2014-09-05
2022-03-21
2022-03-17
2014-09-05
2022-03-22
2014-09-05
2014-09-05
2015-07-05
2022-03-17
uno一起优诺官方版下载v1.13.4908 安卓最新版
卡牌对战宝宝巴士快乐启蒙小游戏下载v8.7.22 安卓最新版本
其它手游宝宝超市春节版游戏最新版下载v9.82.51.00 安卓官方版
经营养成网易游戏蛋仔派对官服版下载v1.0.165 安卓正版
休闲益智欢乐斗地主官方正版下载v8.031.016 安卓完整版
其它手游光遇官服下载v0.13.0 安卓正版
休闲益智小伴龙儿童启蒙官方版下载v10.2.1 安卓原版
其它手游2024逆水寒测试版下载v2.2.10863892 安卓版
角色扮演剑侠世界起源手游官方版下载v1.17.3 安卓版
角色扮演