使用try{thow}catch(){}异常处理结构,可以有效的控制多行可能发生异常的代码,基本模型如下:
<?<span>php
</span><span>try</span><span>
{
throw </span><span>new</span> Exception(<span>"</span><span>错误信息</span><span>"</span>;) <span>//</span><span>抛出一个错误</span><span>
}
</span><span>catch</span>(Exception $e) <span>//</span><span>捕获错误信息,Exception是一个内置的错误处理类</span>
<span>{
echo $e</span>->getMessage(); <span>//</span><span>输出错误信息</span>
echo $e->getCode(); <span>//</span><span>返回异常代码</span>
echo $e->getFile(); <span>//</span><span>返回发生异常的文件</span>
echo $e->getLine(); <span>//</span><span>返回发生异常的行号</span>
<span>}
</span>?>Exception原形:
<?<span>php
</span><span>class</span><span> Exception
{
</span><span>protected</span> $message = <span>'</span><span>Unknown exception</span><span>'</span>; <span>//</span><span> 异常信息</span>
<span>private</span> $<span>string</span>; <span>//</span><span> __toString cache</span>
<span>protected</span> $code = <span>0</span>; <span>//</span><span> 用户自定义异常代码</span>
<span>protected</span> $file; <span>//</span><span> 发生异常的文件名</span>
<span>protected</span> $line; <span>//</span><span> 发生异常的代码行号</span>
<span>private</span> $trace; <span>//</span><span> backtrace</span>
<span>private</span> $previous; <span>//</span><span> previous exception if nested exception</span>
<span>public</span> function __construct($message = <span>null</span>, $code = <span>0</span>, Exception $previous = <span>null</span><span>);
final </span><span>private</span> function __clone(); <span>//</span><span> Inhibits cloning of exceptions.</span>
<span>
final </span><span>public</span> function getMessage(); <span>//</span><span> 返回异常信息</span>
final <span>public</span> function getCode(); <span>//</span><span> 返回异常代码</span>
final <span>public</span> function getFile(); <span>//</span><span> 返回发生异常的文件名</span>
final <span>public</span> function getLine(); <span>//</span><span> 返回发生异常的代码行号</span>
final <span>public</span> function getTrace(); <span>//</span><span> backtrace() 数组</span>
final <span>public</span> function getPrevious(); <span>//</span><span> 之前的 exception</span>
final <span>public</span> function getTraceAsString(); <span>//</span><span> 已格成化成字符串的 getTrace() 信息
</span>
<span>public</span> function __toString(); <span>//</span><span> 可输出的字符串</span>
<span>}
</span>?> 同时,一个try也可以关联多个catch块,可以自定义类继承Exception类来实现
系统简介:冰兔BToo网店系统采用高端技术架构,具备超强负载能力,极速数据处理能力、高效灵活、安全稳定;模板设计制作简单、灵活、多元;系统功能十分全面,商品、会员、订单管理功能异常丰富。秒杀、团购、优惠、现金、卡券、打折等促销模式十分全面;更为人性化的商品订单管理,融合了多种控制和独特地管理机制;两大模块无限级别的会员管理系统结合积分机制、实现有效的推广获得更多的盈利!本次更新说明:1. 增加了新
0
<?<span>php
</span><span>class</span> myException1 extends Exception{} <span>//</span><span>根据需要自定义</span>
<span>class</span><span> myException2 extends Exception{}
</span><span>class</span><span> myException3 extends Exception{}
</span><span>try</span><span>{
</span><span>switch</span>(<span>1</span><span>){
</span><span>case</span> <span>1</span>:<span>throw</span> <span>new</span><span> myException1();
</span><span>case</span> <span>2</span>:<span>throw</span> <span>new</span><span> myException2();
</span><span>case</span> <span>3</span>:<span>throw</span> <span>new</span> myException3(); <span>//</span><span>当找不到对应的catch代码块时,将会抛到Exception处理,因为myException3继承了Exception</span>
<span> }
}
</span><span>catch</span><span>(myException1 $e){
echo </span><span>"</span><span>自定义错误1</span><span>"</span><span>;
}
</span><span>catch</span><span>(myException2 $e){
echo </span><span>"</span><span>自定义错误2</span><span>"</span><span>;
}
</span><span>catch</span><span>(Exception $e){
echo </span><span>"</span><span>原始异常类</span><span>"</span><span>;
}
</span>?>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号