欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP-异常处理-笔记

程序员文章站 2024-02-19 15:01:04
...

关键字:

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

显示:

这是一个异常!

相关标签: PHP 笔记