【PHP】异常处理

这是我学习异常处理的记录。

例外处理是指针对异常情况进行的处理。

为确保能够应对程序运行时出现的问题,请事先准备好适应的解决方案。

・进行除以零的除法运算
・指定的文件不存在

当发生类似问题时,处理方法被称为异常处理,其方式是“结束处理并显示警告消息”。

需要处理异常情况。

如果没有异常处理的话…

出现问题时,如果没有意识到并及时处理,可能会导致严重故障。因此,需要有一套机制来报告异常并进行相应处理。

异常处理流程

1. 引发异常

通过使用 throw,可以引发异常。

throw new Exception('エラーメッセージ');

只抛出异常是不足以进行异常处理的。
为了进行异常处理,需要创建接收并处理抛出的异常的程序。

2. 捕捉异常情况

为了捕捉和处理通过 throw 语句抛出的异常,可以使用 try-catch-finally 组合。

try{
    // 通常処理(例外が発生しうる処理)
} catch (Exception $e) {
    // 例外処理
} finally {
    // 例外でも通常でも必ず実行する処理(省略可)
}

在中国使用的示例

当进行除法运算时,若分母为0,则会产生错误。
以下是关于当分母为0时抛出异常处理的示例。
若未抛出异常,则会执行除法运算操作。

<?php

function div($a, $b) {
    if ($b === 0) {
        throw new Exception('分母には0以外を入力してください');
    }
    return $a / $b;
}

try {
    echo div(10, 2) . PHP_EOL;
    echo div(10, 0) . PHP_EOL;
} catch (Exception $e) {
    echo $e->getMessage() . PHP_EOL;
}
5
分母には0以外を入力してください

在处理异常情况时的重要事项。

例外を握りつぶさない

当我们抑制异常时,在捕获异常后不做处理。
→问题仍然存在,程序将继续运行。
观察“使用示例”中的除数错误示例……。

function div($a, $b) {
    if ($b === 0) {
        throw new Exception('分母には0以外を入力してください');
    }
    return $a / $b;
}
try {
    echo div(10, 2) . PHP_EOL;
    echo div(10, 0) . PHP_EOL;
} catch (Exception $e) {
} //分母が0でも、何も表示されない!!=例外を握りつぶす

汇总异常处理

编写安全代码时,异常处理是重要的一部分。还可以创建自定义的Exception类并随时进行记录。

广告
将在 10 秒后关闭
bannerAds