码迷,mamicode.com
首页 > Web开发 > 详细

PHP程序异常处理实现方法

时间:2014-08-28 13:02:39      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:http   java   使用   io   ar   数据   2014   div   cti   

一个异常(Exception)则是在一个程序执行过程中出现一个例外或是一个事件,它中断了指令的运行,跳转到其他程序模块继续执行。所以异常处理经常被当作程序的控制流程使用。无论是错误还是异常,应用程序都必须能够以妥善的方式处理,并做出相应的反映,希望不要丢失数据或者导致程序崩溃。异常处理用于在指定的错误发生时改变脚本的正常流程,是PHP5中的一个新的重要特性。异常处理是一种可扩展、易维护的错误处理统一机制,并提供了一种新的面向对象的错误处理方式。在Java、C#及Python等语言中很早就提供了这种异常处理机制,如果你对某一种语言中的异常处理熟悉,那么对PHP中提供的异常处理机制也不会陌生。

  异常处理和编写程序的流程控制相似,所以也可以通过异常处理实现一种另类的条件选择结构。异常就是在程序运行过程中出现的一些意料之外的事件,如果不对此事件进行处理,则程序在执行时遇到异常将崩溃。处理异常需要再PHP脚本中使用以下语句:

try{                                                //所有需要进行异常处理的代码都必须放入这个代码块内

……                                                //在这里可以使用throw语句抛出一个异常对象
}catch(ex1){                            //使用该代码块捕获一个异常,并进行处理
……                                             //处理发生的异常,也可再次抛出异常
}

  正确的处理程序应当包括:
  Try – 使用异常的函数应该位于 “try” 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
  Throw – 这里规定如何触发异常。每一个 “throw” 必须对应至少一个 “catch”
  Catch – “catch” 代码块会捕获异常,并创建一个包含异常信息的对象
在PHP代码中所产生的异常可以被throw语句抛出并被catch语句捕获。需要进行异常处理的代码都必须放入try代码块内,以便捕获可能存在的异常。每一个try至少要有一个与之对应的catch,也不能出现单独的catch,另外try和cache之间也不能有任何的代码出现。一个异常处理的简单实例如下所示:
1
2
3
4
5
6
7
8
9
10
<?php
try{
$error=‘Always throw this error‘;
throw new Exception($error); //创建一个异常对象,通过throw语句抛出
echo ‘Never executed‘; //从这里开始,try代码块内的代码将不会再被执行
}catch(Exception $e){
echo ‘Caught exception;‘, $e->getMessage(),"\n"; //输出捕获的异常消息
}
echo ‘Hello World‘; //程序没有崩溃继续向下执行
?>

在上面的代码中,如果try代码中出现某些错误,我们就可以执行一个抛出异常的操作。在某些编程语言中,例如Java中,在出现异常时将自动抛出异常。而在PHP中,异常必须手动抛出。throw关键字将处罚异常处理机制,它是一个语言结构,而不是一个函数,但必须给它传递一个对象作为值。在最简单的情况下,可以实现一个内置的Exception类,就像以上代码所示那样。如果在try语句中有异常对象被抛出,该代码块不会再继续向下执行,而直接跳转到catch中执行。并传递给catch代码块一个对象,也可以理解为被catch代码块捕获的对象,其中就是导致异常被throw语句抛出的对象。在catch代码块中可以简单地输出一些异常的原因,也可以是try代码块中任务的另一个版本解决反感,此外,也可以在这个catch代码块中产生新的异常。最重要的是,在异常处理之后,程序不会崩溃,而会继续执行。

 

PHP程序异常处理实现方法

标签:http   java   使用   io   ar   数据   2014   div   cti   

原文地址:http://www.cnblogs.com/ncong/p/3941246.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!