PHP-异常处理-笔记

关键字:

try    catch

注意:

1.try-catch是一种结构,每一个try必须至少对应一个catch

2.trycatch之间不能有任何的代码

流程:当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("这是一个异常!");
	
?>

显示:

这是一个异常!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值