PHP-异常处理-笔记
程序员文章站
2024-02-19 15:01:04
...
关键字:
try catch
注意:
1.try-catch是一种结构,每一个try必须至少对应一个catch
2.try和catch之间不能有任何的代码
流程:当try中的代码出现异常的时候抛出异常,异常后的代码停止执行,开始执行catch中的代码,如果try中的代码没有异常,代码正常执行,不执行catch中的代码
Exception
官方的异常处理类,是所有异常类的基类
getMessage:得到异常消息
getCode:得到异常处理代号
<?php
try {
echo "早上起床<br />";
throw new Exception("我还想睡", 1);
echo "先吃早点<br />";
} catch(Exception $e) {
echo $e."<br />";
echo $e->getMessage()."<br />";//获取异常消息
echo $e->getCode()."<br />";//获取异常消息代号
}
echo '去上课!<br />';
?>
显示:
早上起床
exception 'Exception' with message '我还想睡' in D:\wamp64\www\LetGo\try-catch\1try-catch.php:4 Stack trace: #0 {main}
我还想睡
1
去上课!
自定义异常处理类
首先官方的异常处理类是Excepyion,但是其中的方法大都是fianl修饰,也就意味这些方法无法被重写,所以在自定义异常处理类的时候,其中的方法需要我们自己添加
<?php
class MyException extends Exception
{
function demo()
{
echo "错误!快去打游戏<br />";
}
}
try {
echo "今天要出去玩<br />";
throw new MyException('突然狂风暴雨<br />');
echo "我要做过山车<br />";
} catch (MyException $e) {
echo $e->getMessage();
$e->demo();//调用自己写的方法
}
?>
显示:
今天要出去玩
突然狂风暴雨
错误!快去打游戏
注意:如果是多个catch,要将自定义的异常处理类写在上面,将官方异常处理类写到下面嵌套,因为执行的是第一个catch,但是catch可以嵌套try-catch
<?php
try {
} catch() {
try {
} catch() {
}
}
?>
自定义异常处理函数
定义一个异常发生时就调用的函数
set_exception_handler('方法名');
<?php
function test($e)
{
echo $e->getMessage();
}
set_exception_handler('test');
throw new Exception("这是一个异常!");
?>
显示:
这是一个异常!
上一篇: SQL server本地管理员帐号无法登录的解决办法
下一篇: 看看还有哪位高手会犯这两个异常?