1.9PHP语言的异常(Exception)语句

throw语句

throw 表达式;

try语句

//句法一
try {
    //可能会发生异常的语句
} catch(异常类型 e) {
    //处理异常 e
}
//句法二
try {
    //可能会发生异常的语句
} catch(异常类型 e) {
    //处理异常 e
} finally {
    //不管是否有异常捕获,finally子句中的代码都会执行
}

示例 #1 抛出一个异常

<?php
function inverse($x) {
    if (!$x) {
        throw new Exception('Division by zero.');
    }
    return 1/$x;
}

try {
    echo inverse(5) . "\n";
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

// Continue execution
echo "Hello World\n";
?>
//输出
0.2
Caught exception: Division by zero.
Hello World

示例 #2 带 finally 块的异常处理

<?php
function inverse($x) {
    if (!$x) {
        throw new Exception('Division by zero.');
    }
    return 1/$x;
}

try {
    echo inverse(5) . "\n";
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
} finally {
    echo "First finally.\n";
}

try {
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
} finally {
    echo "Second finally.\n";
}

// 继续执行
echo "Hello World\n";
?>
//输出
0.2
First finally.
Caught exception: Division by zero.
Second finally.
Hello World

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/php/phplang/4973.html

(0)
上一篇 2021年1月9日 02:02
下一篇 2021年1月10日 07:53

相关推荐

  • 1.1PHP语言的标记(Tag)

    PHP 脚本以 <?php 标记开头,以 ?> 标记结尾。 PHP解释器会执行 <?php 和 ?> 标记内的代码,标记外的内容会原封不动地输出。 但是,比如当处于条件语句中间时,此时 PHP 解释器会根据条件判断来决定哪些输出,哪些跳过。PHP 将跳过条…

    PHP语言教程 2021年1月1日
    05700
  • 3.2PHP语言的类(Class)

    类 一个类可以包含有属于自己的常量,变量(称为“属性”)以及函数(称为“方法”)。 final类 final关键字加在类前面可以禁止一个类被继承。 构造函数和析构函数 具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。 一个类可以没有构造函数,构造函数可以没有参数,构造函数体…

    PHP语言教程 2021年3月2日
    08190
  • 1.7PHP语言的表达式(Expression)

    表达式是 PHP 最重要的构建部分。在 PHP 中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。

    PHP语言教程 2021年1月7日
    03450

发表回复

登录后才能评论