PHP5的异常处理机制[13]--获得异常相关的更多信息

原创 2004年08月30日 22:08:00

获得异常相关的更多信息

以下是用来格式化输出异常信息的代码:

index_php5_6.php

<?php
// PHP 5
class Front {
    static function
main() {
        try {
            
$helper = new RequestHelper(array(cmd=>'realcommand'));
            
$helper->runCommand();
        } catch (
Exception $e) {
            print
"<h1>".get_class($e)."</h1>/n";
            print
"<h2>{$e->getMessage()}
                ({$e->getCode()})</h2>/n/n"
;
            print
"file: {$e->getFile()}<br />/n";
            print
"line: {$e->getLine()}<br />/n";
            print
$e->getTraceAsString();
            die;
        }
    }
}
Front::main();
?>

如果你的realcommand类无法被实例化(例如你将它的构造函数声明为private)并运行以上代码,你可以得到这样的输出:

ReflectionException

Access to non-public constructor of class realcommand (0)

file: c:/MyWEB/Apache/htdocs/php5exception/index_php5_4.php
line: 31
#0 c:/MyWEB/Apache/htdocs/php5exception/index_php5_5.php(25): CommandManager->getCommandObject()

#1 c:/MyWEB/Apache/htdocs/php5exception/index_php5_6.php(10): RequestHelper->runCommand('realcommand')

#2 c:/MyWEB/Apache/htdocs/php5exception/index_php5_6.php(23): Front::main()

#3 {main}

你可以看到getFile()getLine()分别返回发生异常的文件和行数。GetStackAsString()方法返回每一层导致异常发生的方法调用的细节。从#0一直到#4,我们可以清楚地看到异常传递的路线。

你也可以使用getTrace()方法来得到这些信息,getTrace()返回一个多维数组。第一个元素包含有异常发生的位置,第二个元素包含外部方法调用的细节,直到最高一层的调用。这个数组的每个元素本身也是一个数组,包含有以下几个键名(key)

key

含义

file

产生异常的文件

line

产生异常的类方法所在行数

function

产生异常的函数/方法

class

调用的方法所在类

type

调用类型:'::' 表示调用静态类成员
'->'
表示实例化调用(先实例化生成对象再调用)

args

类方法接受的参数

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android全局异常捕获机制

安卓异常整体解决方案,从异常捕获、到异常日志写入、到异常上报等。。
  • XiNanHeiShao
  • XiNanHeiShao
  • 2017年06月15日 21:26
  • 1800

C#OOP之十 异常机制及其处理

异常简介 索引越界、文件I/O出错、堆栈溢出、除零运算问题、数据库无法使用等一个个问题,对于我们来说如何保证系统容错和程序规范,异常机制是不可或缺的重要因素和手段。良好的系统设计必定有良好的异常...
  • zhangchen124
  • zhangchen124
  • 2016年04月29日 10:49
  • 1508

JAVA异常机制介绍/如何正确的进行JAVA异常处理

作者:Maverick  blog:http://blog.csdn.net/zhaohuabing  转载请注明出处 1. 课前练习 在阅读本文的内容之前,请从下面这段代码中找出异常处理有...
  • best1196
  • best1196
  • 2015年03月19日 11:42
  • 1928

PHP5中的异常处理详解

首先是try,catch ﹤?php $path = "D:\\\\in.txt"; try //检测异常 { file_open($path); } catch(Ex...
  • tigerdsh
  • tigerdsh
  • 2013年04月30日 01:14
  • 831

c++异常处理机制详细介绍

  • 2011年05月18日 21:03
  • 448KB
  • 下载

c++异常处理机制描述

  • 2010年08月26日 22:49
  • 2.8MB
  • 下载

可嵌套的C语言异常处理机制

  • 2007年12月27日 18:14
  • 168KB
  • 下载

C++ 各种异常处理机制 演示代码

  • 2011年11月09日 17:26
  • 2.58MB
  • 下载

C异常处理机制.doc

  • 2009年08月19日 19:30
  • 87KB
  • 下载

android 异常处理机制

  • 2012年12月16日 21:43
  • 156KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP5的异常处理机制[13]--获得异常相关的更多信息
举报原因:
原因补充:

(最多只允许输入30个字)