搜索
首页后端开发php教程php错误、异常处理机制(补充)_php技巧

一、错误处理
异常处理: 意外,是在程序运行过程中发生的意料这外的事,使用异常改变脚本正常流程
PHP5中的一个新的重要特性
复制代码 代码如下:

if(){
}else{
}
try {
}catch(异常对象){
}

1. 如果try中代码没有问题,则将try中代码执行完后就到catch后执行
2. 如果try中代码有异常发生,则抛出一个异常对象(使用throw),抛出给了catch中的参数, 则在try中代码就不会再继续执行下去
直接跳转到catch中去执行, catch中执行完成, 再继续向下执行
注意: 提示发生了什么异常,这不是主要我们要做事,需要在catch中解决这个异常, 如果解决不了,则出去给用户
二、自己定义一个异常类
作用:就是写一个或多个方法解决当发生这个异常时的处理方式
1. 自己定义异常类,必须是Exception(内置类)的子类,
2. Exception类中的只有构造方法和toString()可以重写, 其它都final
三、处理多个异常
自己定义功能类时如果在方法中抛出异常
复制代码 代码如下:

class OpenFileException extends Exception {
function __construct($message = null, $code = 0){
parent::__construct($message, $code);
echo "wwwwwwwwwwwwwww
";
}
function open(){
touch("tmp.txt");
$file=fopen("tmp.txt", "r");
return $file;
}
}
class DemoException extends Exception {
function pro(){
echo "处理demo发生的异常
";
}
}
class TestException extends Exception {
function pro(){
echo "这里处理test发生的异常
";
}
}
class HelloException extends Exception {
}
class MyClass {
function openfile(){
$file=@fopen("tmp.txt", "r");
if(!$file)
throw new OpenFileException("文件打开失败");
}
function demo($num=0){
if($num==1)
throw new DemoException("演示出异常");
}
function test($num=0){
if($num==1)
throw new TestException("测试出错");
}
function fun($num=0){
if($num==1)
throw new HelloException("###########");
}
}
try{
echo "11111111111111
";
$my=new MyClass();
$my->openfile();
$my->demo(0);
$my->test(0);
$my->fun(1);
echo "22222222222222222
";
}catch(OpenFileException $e){ //$e =new Exception();
echo $e->getMessage()."
";
$file=$e->open();
}catch(DemoException $e){
echo $e->getMessage()."
";
$e->pro();
}catch(TestException $e){
echo $e->getMessage()."
";
$e->pro();
}catch(Exception $e){
echo $e->getMessage()."
";
}
var_dump($file);
echo "444444444444444444444
";
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何解决Python的函数未定义错误?如何解决Python的函数未定义错误?Jun 24, 2023 pm 01:51 PM

Python是一种面向对象的高级编程语言,具有简单、易读、易学等特点,因此被广泛应用于数据分析、人工智能、网站开发等领域。在Python编程过程中,我们常常会遇到函数未定义的错误,本文将介绍如何解决这个问题。定义函数首先,我们需要明确函数未定义错误的原因:通常是因为我们忘记或者未正确地定义某个函数。因此,我们需要检查代码中是否包含所有需要定义的函数,并确保它

如何解决Python的文件夹未找到错误?如何解决Python的文件夹未找到错误?Jun 24, 2023 pm 04:32 PM

Python是一种流行的编程语言,但在使用中,经常会遇到一些错误。其中一个常见的错误是“文件夹未找到”。这个错误很容易让新手或者不熟悉Python的人感到困惑。在本文中,我们将讨论如何解决这个问题。1.确认文件夹路径是否正确在Python中,处理文件和文件夹的时候,需要指定文件和文件夹的路径。如果路径设置错误,那么就会导致程序无法找到文件夹。因此,我们需要先

怎样解决在 Windows 11/10 中缺失或找不到 Xlive.dll 的问题?怎样解决在 Windows 11/10 中缺失或找不到 Xlive.dll 的问题?May 08, 2023 pm 08:55 PM

<p>Xlive.dll是Microsoft的一个动态链接库(DLL),它是“WindowsLive游戏”的一部分。由Xlive.dll引起的错误可能是由于Xlive.dll文件的删除、放错位置、被恶意软件损坏或注册表项搞砸了。由于此错误而无法启动程序或游戏可能会令人沮丧。让我们看看解决这个问题的方法。此问题通常可以通过正确重新安装Xlive.dll文件来解决。</p><p><strong&

如何解决Python的缩进错误?如何解决Python的缩进错误?Jun 24, 2023 pm 12:19 PM

Python是一种非常流行的编程语言,由于其简洁明了的语法、易于学习以及丰富的生态系统得到了广泛的应用。然而,由于Python采用缩进作为代码块的标识,所以在编写Python程序的过程中,很容易遇到缩进错误的问题。缩进错误的原因可能是拼写错误、恰当使用缩进或可读性不好,这可能会导致代码运行失败或出现意想不到的结果。因此,在想要解决Python缩进错误的时候,

如何解决Python的最大递归深度错误?如何解决Python的最大递归深度错误?Jun 24, 2023 pm 02:48 PM

Python是一门易学易用的编程语言,然而在使用Python编写递归函数时,可能会遇到递归深度过大的错误,这时就需要解决这个问题。本文将为您介绍如何解决Python的最大递归深度错误。1.了解递归深度递归深度是指递归函数嵌套的层数。在Python默认情况下,递归深度的限制是1000,如果递归的层数超过这个限制,系统就会报错。这种报错通常称为“最大递归深度错误

NotImplementedError:如何解决Python未实现方法错误?NotImplementedError:如何解决Python未实现方法错误?Jun 24, 2023 pm 02:16 PM

在Python编程中,当我们想要调用一个尚未实现的方法时,会出现NotImplementedError的错误提示。这个错误可以让我们感到困惑,因为它并没有明确告诉我们如何解决它。在本文中,我们将探讨NotImplementedError的原因,并提供一些解决方法,帮助您克服此错误。什么是NotImplementedError?NotImplementedEr

如何解决 golang 中的 “undefined: time.Now” 错误?如何解决 golang 中的 “undefined: time.Now” 错误?Jun 24, 2023 pm 07:30 PM

Go语言中的时间相关函数是非常常用的一部分,而time.Now()函数则是最常用的获取当前时间的方式。然而有时候我们在代码中调用这个函数却会出现"undefined:time.Now"的错误,那么我们该怎么解决这个问题呢?首先,我们需要了解一下这个错误的原因。Go语言的std库是根据当前Go版本编译生成的。当你的Go程序引入一个std

如何解决Python的内存不足错误?如何解决Python的内存不足错误?Jun 24, 2023 am 11:49 AM

Python作为一种高级编程语言,在数据处理、科学计算、人工智能等领域广泛应用。不过,在这些应用场景中,Python的内存占用较高,甚至可能出现内存不足的情况。本文将介绍如何解决Python的内存不足错误。减少内存使用量Python语言本身并不是一个占用内存很大的语言。通常情况下,Python的内存使用量是由程序设计、数据结构、算法等因素共同决定的。因此,我

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。