如何使用异常处理机制

  • 格式:doc
  • 大小:33.50 KB
  • 文档页数:3

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何使用异常处理机制

《PHP核心技术与最佳实践》第1章面向对象思想的核心概念,本章将就面向对象一些概念展开讨论,其中重点讨论PHP特色的面向对象的风格和语法,并通过相互借鉴和对比,使读者认识PHP自身的特点,尤其是和其他语言中不同的地方。本节为大家介绍如何使用异常处理机制。

1.6.1 如何使用异常处理机制(1)

异常的思想最早可以追溯到20世纪60年代,其在C++、Java中发扬光大,PHP则部分借鉴了这两种语言的异常处理机制。

PHP里的异常,是程序运行中不符合预期的情况及与正常流程不同的状况。一种不正常的情况,就是按照正常逻辑不该出错,但仍然出错的情况,这属于逻辑和业务流程的一种中断,而不是语法错误。PHP里的错误则属于自身问题,是一种非法语法或者环境问题导致的、让编译器无法通过检查甚至无法运行的情况。

在各种语言里,异常(exception)和错误(error)的概念是不一样的。在PHP里,遇到任何自身错误都会触发一个错误,而不是抛出异常(对于一些情况,会同时抛出异常和错误)。PHP一旦遇到非正常代码,通常都会触发错误,而不是抛出异常。在这个意义上,如果想使用异常处理不可预料的问题,是办不到的。比如,想在文件不存在且数据库连接打不开时触发异常,是不可行的。这在PHP里把它作为错误抛出,而不会作为异常自动捕获。

以经典的除零问题为例,如代码清单1-16所示。

代码清单1-16 exception.php

1.// exception.php

2.

3.$a=null;

4.try{

5.$a=5/0;

6.echo $a,PHP_EOL;

7.}catch(exception $e){

8.$e->getMessage();

9.$a=-1;

10.}

11.echo $a;

图1-8 PHP里的除零错误

代码清单1-17所示是Java代码。

代码清单1-17 ExceptionTry.java

1.// ExceptionTry.java

2.public class ExcepetionTry {

3.public static void tp() throws ArithmeticException{

4.int a;

5.a=5/0;

6.System.out.println("运算结果:"+a);

7.}

8.

9.public static void main(String[] args) {

10.int a;

11.try {

12.a=5/0;

13.System.out.println("运算结果:"+a);

14.} catch (ArithmeticException e) {

15. e.printStackTrace();

16.}finally{

17.a = -1;

18.System.out.println("运算结果:"+a);

19.}

20.try {

21.ExcepetionTry.tp();

22.} catch (Exception e) {

23.System.out.println("异常被捕获");

24.}

25.

26.}

27.}

28.如有侵权请联系告知删除,感谢你们的配合!

29.

30.

31.