`

php异常处理初步学习(转)

阅读更多
<?php
/**
* PHP异常处理
*
* PHP 5 添加了类似于其它语言的异常处理模块。在 PHP 代码中所产生的异常可被 throw
* 语句抛出并被 catch 语句捕获。需要进行异常处理的代码都必须放入 try 代码块内,以
* 便捕获可能存在的异常。每一个 try 至少要有一个与之对应的 catch。使用多个 catch
* 可以捕获不同的类所产生的异常。当 try 代码块不再抛出异常或者找不到 catch 能匹配
* 所抛出的异常时,PHP 代码就会在跳转到最后一个 catch 的后面继续执行。当然,PHP
* 允许在 catch 代码块内再次抛出(throw)异常。
* 当一个异常被抛出时,其后(译者注:指抛出异常时所在的代码块)的代码将不会继续
* 执行,而 PHP 就会尝试查找第一个能与之匹配的 catch。如果一个异常没有被捕获,而
* 且又没用使用 set_exception_handler() 作相应的处理的话,那么 PHP 将会产生一
* 个严重的错误,并且输出 Uncaught Exception ... (未捕获异常)的提示信息。
*/
?>

<?php
/**
* Exception.php
*
*PHP5内置的异常类的属性与方法
* 以下这段代码只为说明内置异常处理类的结构,它并不是一段有实际意义的可用代码。
*/

class Exception{
protected $message = 'Unknown exception'; // 异常信息
protected $code = 0; // 用户自定义异常代码
protected $file; // 发生异常的文件名
protected $line; // 发生异常的代码行号

function __construct($message = null, $code = 0);
final function getMessage(); // 返回异常信息
final function getCode(); // 返回异常代码(代号)
final function getFile(); // 返回发生异常的文件名
final function getLine(); // 返回发生异常的代码行号
final function getTrace(); // backtrace() 数组
final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息

//可重载的方法
function __toString(); // 可输出的字符串
}
?>

<?php
/**
* syntax .php
*/

//语法结构以及分析

//PHP有两种抛出异常的格式,如下

//【1】try...catch...
try {
//实行可能有异常的操作,比如数据库错作,文件错作
}catch (Exception $e){
//打印错误信息  写日志 或则再处理
}

//【2】throw
$message='我必须被运行在try{}块中,出现异常的话我($message)将被返回(传递)给catch()里的异常对象的实例比如上面的$e';
$code=123; //错误代码号,可在catch块中用$e->getCode();返回我的值 123,这样我就可以自定义错误代码号

throw new Exception($message,$code);

//学JAVA的注意,PHP异常处理没有throws
?>
<?php
/**
* Example.php
*/
//两个实例掌握PHP异常处理


//例【1】用 try...catch
/* PDO连接mysql数据库,如果没看过PDO,先看下PDO的构造函数,要不跳过例1看例2 */
$dsn = 'mysql:host=localhost;dbname=testdb';
$user = 'dbuser';
$password = 'dbpass';
try {
$dbh = new PDO($dsn, $user, $password); //创建数据库连接对象容易出现异常
echo '如果上面出现异常就不能显示我了';
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->__toString();
}
?>

<?php
//例[2] try..cathc 和 throw一起用
try {
$error = '我抛出异常信息,并且跳出try块';
if(is_dir('./tests')){
echo 'do sth.';
}else{
throw new Exception($error,12345);
}
echo '上面有异常的话就轮不到我了!~<br />',"\n";
} catch (Exception $e) {
echo '捕获异常: ', $e->getMessage(),$e->getCode(), "\n<br />"; //显示$error和123456
}
echo '继续执行';
?>
分享到:
评论

相关推荐

    最短时间学会php初步应用

    7. 错误和异常处理: PHP中的`error_reporting()`函数可以设置错误报告级别,`try...catch`结构用于捕获和处理异常。 8. PHP面向对象编程: PHP5引入了完整的面向对象编程支持,包括类、对象、继承、封装和多态。...

    PHP5面向对象初步.rar

    11. 常用的PHP5内置类库:例如 SPL(Standard PHP Library),提供了丰富的数据结构和迭代器类,以及异常处理类等。 12. 设计模式:简述面向对象设计模式,如工厂模式、单例模式、观察者模式等,它们是解决常见编程...

    PHP教程全部PPT(共70讲)

    7. **错误与异常处理**:学习如何在PHP中有效地捕获和处理错误与异常,提高程序的健壮性。 8. **PHP函数库和框架**:了解PHP内置的函数库,如日期时间处理、数学计算、加密解密等,并初步接触流行的PHP框架,如...

    非常有用php学习资料适合去初学php的软件爱好者

    8. **错误和异常处理**:了解如何处理运行时错误,使用try-catch块进行异常处理。 9. **PHP最佳实践**:编码规范、性能优化、安全防范(如SQL注入、XSS攻击等)。 10. **常见PHP框架介绍**:如Laravel、...

    基于PHP的深度学习php爱墙程序(带后台)源码.zip

    5. **错误和异常处理**:使用try-catch语句来捕获和处理可能出现的问题。 6. **模板引擎**:可能使用了如Smarty这样的模板引擎,使视图和逻辑分离。 7. **RESTful API设计**:如果程序有前后端分离的设计,可能会...

    php高级技术(完整)

    资料中包括了从面向对象的初步介绍到接口与多态、异常处理等进阶话题,这些都是理解和应用PHP5面向对象编程的关键。 - PHP5面向对象初步:这部分内容可能介绍了如何定义类、创建对象,以及理解类的属性和方法。 - ...

    PHP实例开发源码-ATIVEASCII编码在线互转.zip

    这个压缩包的学习价值在于,它不仅展示了PHP处理字符编码转换的实际应用,还可能涉及到前后端交互、错误处理等全面的Web开发知识,对于初学者或者想要提升PHP编码技能的开发者来说,是一个很好的实践案例。

    PHP OOP入门必读

    总结来说,这份资料集合涵盖了PHP5中OOP的核心内容,从基础的类和对象到高级的接口、继承和多态,再到异常处理机制,为初学者提供了一个全面的学习路径。通过深入理解和实践这些知识点,你将能够更好地利用PHP进行...

    三天学会PHP——第一天

    7. **错误与异常处理**:初步接触PHP的错误处理机制,了解try...catch异常处理方式,以及错误报告级别设置。 8. **文件操作**:学习如何读取、写入和移动文件,使用fopen(), fwrite(), fclose()等函数处理文件。 9...

    php(十天学会php教程).rar

    6. **错误与异常处理**:理解PHP的错误报告机制,学习如何使用try...catch处理异常,以确保程序的健壮性。 7. **会话管理**:掌握如何使用session和cookie进行用户状态跟踪,实现会话持久化。 8. **数据库交互**:...

    PHP入门学习资料-自己总结

    9. **错误与异常处理** PHP使用`error_reporting()`设置错误报告级别,`try-catch`语句用于捕获和处理异常。 10. **PHP与Web框架** 许多优秀的PHP框架如Laravel、Symfony和CodeIgniter,提供了一套完整的开发结构...

    计算机软件-编程源码-php4编程与实例(二).zip

    7. **错误和异常处理**:学习如何处理运行时错误,以及在PHP4中如何使用try-catch块来处理异常。 8. **会话管理**:理解如何在PHP4中使用session来跟踪用户的会话状态,实现用户登录和权限控制。 9. **面向对象...

    自学教材:十分钟学PHP(英文版本)

    6. **错误与异常处理**:理解PHP的错误报告机制,以及如何使用try-catch结构进行异常处理。 7. **数据库交互**:学习PDO或mysqli扩展来连接和查询数据库,编写SQL语句,进行数据的增删改查操作。 8. **面向对象...

    php课件(适用于初学者)

    PHP提供了错误报告和异常处理机制,学习如何使用try...catch结构捕获并处理异常,是编程实践中不可或缺的一环。 【框架和CMS的初步接触】 了解常见的PHP框架(如Laravel、Symfony、CodeIgniter等)和内容管理系统...

    十天学会PHP的资料

    **第七天:错误与异常处理** 1. 错误类型:区分致命错误、警告、通知等不同级别的错误。 2. 错误处理:学习如何使用try-catch结构处理异常。 3. 自定义错误处理:了解set_error_handler函数的应用。 **第八天:...

    PHP开发实战1200例

    除此之外,本书还涵盖了错误和异常处理、PHP与XML的交互、Session和Cookie的管理,以及PHP的高级特性,如命名空间、闭包和 Trait。这些内容有助于提升读者的PHP编程技巧,使他们能够处理更复杂的项目需求。 为了...

    十天学会php之第一天

    10. **错误与异常处理**:学习如何捕获和处理程序运行时的错误,理解错误级别和异常机制。 通过第一天的学习,你将建立起对PHP的基本认识,并具备编写简单PHP脚本的能力。然而,真正精通PHP并不仅仅是理论知识,还...

    PHP100视频教程(2012版)解压密码

    通过这些视频教程,学习者可以学习到PHP的基础语法,如变量、数据类型、流程控制、函数、数组、字符串处理、文件操作、错误与异常处理、类和对象等核心概念。此外,还可能涉及数据库交互(如MySQLi或PDO)、会话管理...

    php學習資料

    6. **错误和异常处理**:学习如何设置错误报告级别,使用try-catch结构处理异常,以及理解错误与警告的区别。 7. **面向对象编程**:PHP 5引入了完整的面向对象支持,包括类、对象、继承、封装、多态等概念,是进阶...

    PHP实例开发源码—gallery web php网站照片管理系统.zip

    8. **错误处理和日志记录**:如何优雅地处理程序异常,记录错误日志,便于调试和维护。 9. **安全性**:学习防止SQL注入、XSS攻击等Web安全最佳实践。 10. **响应式设计**:通过CSS和JavaScript实现网页在不同设备上...

Global site tag (gtag.js) - Google Analytics