php 内部类使用,PHP异常和错误(3)异常内部类详解

本文介绍了PHP中的内置异常类Exception,包括其属性和方法。通过示例展示了如何创建自定义异常类并进行使用。自定义异常类可以通过继承Exception类实现,允许在开发中定制友好的错误提示,提高代码的可读性和维护性。
摘要由CSDN通过智能技术生成

前言:

在PHP函数中,有一个处理异常的内部类-exception,我们今天来一起认识一下。

内容概要:

1、exception内部类解析

2、如何创建自己的内部类

3、自定义异常类的使用

一、exception类

我们先把这个内部类拿出来,看看它究竟是怎么实现的。

Exception {

/* 属性 */

protected string $message ;

protected int $code ;

protected string $file ;

protected int $line ;

/* 方法 */

public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )

final public string getMessage ( void )

final public Throwable getPrevious ( void )

final public int getCode ( void )

final public string getFile ( void )

final public int getLine ( void )

final public array getTrace ( void )

final public string getTraceAsString ( void )

public string __toString ( void )

final private void __clone ( void )

}

我们一起来解析一下:

首先这个内部类在实例化的时候,可以传入两个参数,异常说明和异常编码。

同时,实例化的对象可以返回发生异常的文件地址和名称,行数,发生异常时的参数。

二、如何创建自己的异常类

自定义异常类比较简单,直接继承exception类即可。

class MyException extends Exception

{

public function errorMessage()

{

//error message

return 'MyMessage:'.$this->getMessage();

}

}

这样,我们自己的MyException类,实例化对象后,可以继承父类的属性和方法。

比如 getLine() 、 getFile() 以及 getMessage()。

日常开发中,我们还可以建立一个总的异常类MyException,并在这个异常类中定义一些友好显示的模板,让具体的异常类继承MyException,开发过程中就能比较高逼格显示异常了。

三、自定义异常类的使用

这个可以参考上一节的示例。我这里贴出来,就不废话了。

$a = 'PHP在路上';

try {

if ($a === 0) {

throw new ZeroException("Error Processing Request1", 1);

}else

{

throw new MyException("Error Processing Request2", 1);

}

echo 4/$a;

} catch (ZeroException $e) {

echo $e->getMessage();

}

catch(MyException $e) {

echo $e->getMessage();

}

class ZeroException extends Exception

{

public function errorMessage()

{

//error message

return 'Zero:'.$this->getMessage();

}

}

class MyException extends Exception

{

public function errorMessage()

{

//error message

return 'MyMessage:'.$this->getMessage();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值