当前位置:首页 > PHP

php异常实现

2026-02-14 19:59:42PHP

PHP 异常处理基础

PHP 异常处理通过 trycatchthrowfinally 关键字实现,用于捕获和处理运行时错误。异常是程序执行过程中出现的意外情况,例如数据库连接失败、文件不存在等。

try {
    // 可能抛出异常的代码
    if ($fileNotFound) {
        throw new Exception("File not found");
    }
} catch (Exception $e) {
    // 处理异常
    echo "Error: " . $e->getMessage();
} finally {
    // 无论是否发生异常都会执行的代码
    echo "Cleanup here";
}

自定义异常类

通过继承 Exception 类可以创建自定义异常,以便更精确地描述特定错误类型。

class CustomException extends Exception {
    public function __construct($message, $code = 0) {
        parent::__construct($message, $code);
    }

    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }
}

try {
    throw new CustomException("Custom error occurred");
} catch (CustomException $e) {
    echo $e;
}

多重异常捕获

可以捕获多种不同类型的异常,并根据异常类型执行不同的处理逻辑。

try {
    // 可能抛出多种异常的代码
} catch (CustomException $e) {
    echo "Custom exception: " . $e->getMessage();
} catch (Exception $e) {
    echo "Generic exception: " . $e->getMessage();
}

异常处理最佳实践

  • 在可能失败的代码块周围使用 try-catch
  • 抛出异常时提供有意义的错误信息
  • 根据不同的错误类型创建特定的异常类
  • finally 块中释放资源,如关闭文件或数据库连接
  • 记录异常信息以便调试
try {
    $db = new PDO("mysql:host=localhost;dbname=test", "user", "pass");
    // 数据库操作
} catch (PDOException $e) {
    error_log("Database error: " . $e->getMessage());
    echo "A database error occurred. Please try again later.";
} finally {
    $db = null; // 确保连接关闭
}

异常与错误处理

PHP 7+ 引入了 Throwable 接口,它是 ExceptionError 的共同父接口,可以捕获致命错误。

try {
    // 可能抛出异常或错误的代码
} catch (Throwable $t) {
    echo "Caught throwable: " . $t->getMessage();
}

全局异常处理

通过设置自定义异常处理函数可以捕获未被捕获的异常。

set_exception_handler(function ($exception) {
    echo "Uncaught exception: " . $exception->getMessage();
});

// 后续代码中未被捕获的异常将调用此处理程序

php异常实现

标签: 异常php
分享给朋友:

相关文章

php实现打印功能

php实现打印功能

PHP实现打印功能的方法 在PHP中实现打印功能可以通过多种方式完成,包括直接输出到浏览器、生成PDF文件、调用打印机接口等。以下是几种常见的方法: 直接输出HTML内容 PHP可以通过echo或p…

php实现文件下载

php实现文件下载

PHP 实现文件下载的方法 使用 header() 函数强制下载 设置正确的 HTTP 头信息,强制浏览器下载文件而不是直接打开。 $file = 'path/to/file.pdf'; if (f…

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE…

php实现表单

php实现表单

PHP 表单基础实现 创建一个简单的 PHP 表单需要 HTML 表单结构和 PHP 处理脚本。以下是一个完整的示例: HTML 表单部分 (form.html) <form actio…

php如何实现直播

php如何实现直播

实现直播功能的方法 PHP可以通过结合其他技术和工具来实现直播功能。以下是几种常见的方法: 使用流媒体服务器 配置流媒体服务器如Nginx-RTMP、Red5或Wowza。这些服务器支持RTM…