php中文网 | cnphp.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: php 视频教程
查看: 484|回复: 0

9、异常处理

[复制链接]

61

主题

61

帖子

426

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
426
发表于 2021-5-2 22:21:06 | 显示全部楼层 |阅读模式
[TOC]
## 异常处理 ##
使用 try-catch 语句实现异常处理, 使用 throw 语句抛出异常, 在 PHP 中必须手动抛出异常, 不像 JAVA 可以自动抛出异常。抛出异常时使用 throw 关键字, 如果 throw 语句被执行, 则其后的代码都不执行, 而是转到 catch 中的代码执行, 这样程序就不会崩溃, 可以继续执行

---
    try {
        ...
    } catch(Exception $e) {
        ...
    }
## 扩展 PHP 异常处理类 ##
PHP 可扩展的属性和方法如下:

---
    class Exception {
        // 异常信息
        protected $message = "Unknown exception";
        // 用户自定义异常代码
        protected $code = 0;
        // 发生异常的文件名
        protected $file;
        // 发生异常的代码行号
        protected $line;
        function __construct($message=null, $code=0) {}
        // 获取异常信息
        final function getMessage() {}
        // 获取异常代码
        final function getCode() {}
        // 获取发生异常的文件名
        final function getFile() {}
        // 获取发生异常的行号
        final function getLine() {}
        // backtrace() 数组
        final function getTrace() {}
        // 格式化为字符串的 getTrace() 函数
        final function getTraceAsString() {}
        // 可重载的方法, 可输出的字符串
        function __toString() {}
    }
## 捕获多个异常 ##
可能发生多个异常, 并且每个异常的处理方式都不一样时, 可以使用多个 catch 语句进行处理, 当 try 代码块不再抛出异常或者找不到可以匹配的 catch 语句时, PHP 会跳转到最后一个 catch 语句执行。多个 catch 语句时, 每个 catch 语句捕获的异常必须不同



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|php中文网 | cnphp.com

GMT+8, 2021-6-25 20:05 , Processed in 0.025142 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表