网站制作学习网PHP→正文:php异常
字体:

php异常

PHP 2010/8/12 18:50:46  点击:不统计

http://%77%77%77%2E%66网站制作%6F学习网%72%61%73%70%2E%63%6E


php异常通过try,catch和throw三个关键字和内置的Exception基类来实现,语序运行可能发生的错误代码并且能从失败中回复
1.try是用来检测异常的代码块。举例
<?try{代码}?>
2.catch是用来定义出来异常方法的。
<? catch(Exception $e){处理代码}?>
3.throw是用来触发异常还并在这一点上中断处理过程
<? throw new Exception("错误信息");?>
看异常的实例,我拿数据库连接作为异常的实例
<?
try{//尝试连接
 @$conn = mysql_connect("localhost","root","");
  $flag = mysql_select_db("test",$conn);
  if($flag){//连接错误抛出异常
  throw new Exception("不能连接数据库"); 
  }
}
catch(Exception $e){//用catch捕获异常并输出异常信息
echo $e->getMessage();
}
?>
Excption类是所有异常类的基类,可以通过基类来扩展异常类。
异常方法:
getMessage() 返回异常信息,此信息是描述错误状态的字符串
getCode() 返回错误代码
getFile() 返回错误文件
getLine() 返回错误行数要与getFile()一起用
getTrace() 返回场景回溯的一个数组
getTranceAsString() 返回场景回溯的字符串
__toString() 返回字符串表达整个异常的信息

php异常的扩展,通过对基类Exception的扩展来自定义异常类
<?
class dbexception extends Exception{//自定义dbexception类
 private $errmessage;//定义一个属性
 function __contruct($message=null,$code=0){//实例化时,给默认值
  $this->errmessage=$message;
  parent::__contruct($message,$code);//实例化扩展类时,调用父类的构造函数
 }

}
try{
 @$conn = mysql_connect("localhost","root","");
  $flag = mysql_select_db("test",$conn);
  if($flag){
  throw new dbexception("不能连接数据库"); 
  }
}
catch(dbexception $e){
echo $e->getMessage();//同样不能连接数据库
}
?>

说了这么多,不知道异常懂了没?


forasp.cn

·上一篇:php mysql事务 >>    ·下一篇:php反射api >>
推荐文章
最新文章