PHP异常

【Exception】php

  Exception类是全部异常类的基类。html

 

 1 //Exception类摘要
 2 Exception{
 3     //属性
 4     protected string $message;    //异常的消息内容
 5     protected int $code;    //异常代码
 6     protected string $file;    //抛出异常的文件名
 7     protected int $line;    //抛出异常在文件中的行号
 8 
 9     //方法
10     public __construct([string $message='' [,int $code=0 [,Exception $previous=NULL]]]);    //构造函数
11     final public string getMessage(void);    //获取异常的消息内容
12     final public Exception getPrevious(void);    //返回异常链中的前一个异常
13     final public int getCode(void);    //获取异常代码
14     final public string getFile(void);    //获取发生异常的程序文件名
15     final public int getLine(void);    //获取发生异常的代码在文件中的行号
16     final public array getTrace(void);    //获取异常的追踪信息
17     final public string getTraceAsString(void);    //获取一个字符串类型的异常追踪信息
18     public string __toString(void);    //将异常对象转化为字符串
19     final private void __clone(void);    //异常克隆
20 }

 【ErrorException】web

 1 //ErrorException类摘要
 2 ErrorException extends Exception{
 3     //属性
 4     protected int $severity;    //异常级别
 5 
 6     //方法
 7     public __construct([string $message='' [,int $code=0 [,int $severity=1 [,string $filename=__FILE__ [,int $lineno=__LINE__ [,Exception $previsou=null]]]]]]);
 8     final public init getSeverity(void);
 9 
10     //继承的方法
11     final public string Exception::getMessage(void);
12     final public Exception Exception::getPrevoius(void);
13     final public int Exception::getCode(void);
14     final public string Exception::getFile(void);
15     final public int Exception::getLine(void);
16     final public array Exception::getTrace(void);
17     final public string Exception::getTraceAsString(void);
18     public string Exception::__toString(void);
19     final private void Exception::__clone(void);
20 }

【相关配置】数组

 1 error_reporting integer;    //设置错误报告的级别。该参数能够是一个任意的标识二进制位字段的整数或常数名称。默认值为E_ALL&~E_NOTICE。
 2 display_error boolean;    //配置将错误信息做为输出的一部分显示在屏幕上,仍是对用户隐藏而不显示。
 3 display_startup_errors boolean;    //设置是否显示PHP启动过程当中的错误。即便display_error设置为开启,PHP启动过程当中的错误也不会被显示。
 4 log_error boolean;    //设置是否将脚本运行的错误信息记录到服务器错误日志或error_log之中。
 5 log_error_max_len integer;    //log_error的最大字节数。在error_log会添加有关错误源的信息。默认值为1024.设置为0表示不限长度。该参数的设置对记录的错误,显示的错误,以及$php_errormsg都会有限制做用。
 6 ignore_repeated_errors boolean;    //是否记录重复的错误信息。重复的错误必须出如今同一个文件的同一行代码,除非ignore_repeated_source设置为true。
 7 ignore_repeated_source boolean;    //设置为开启时,重复的信息将不会记录它是由不一样的文件仍是不一样的源代码产生的。忽略重复消息时,也忽略消息的来源。
 8 report_memleaks boolean;    //若是设置为off,则内存泄露信息不会显示在stdout或日志中。只对调试编译有效,并且须要error_reporting包含E_WARNING才会其做用。
 9 track_errors boolean;    //若是开启,最后一个错误将永远存在于变量$php_errormsg中。
10 html_errors boolean;    //在错误信息中关闭HTML标签。这种新的HTML格式的错误信息是能够点击的,它引导用户前往描述该错误或致使该错误发生的函数的参考信息页面。这些参考与docref_root和docref_ext的设置有关。
11 xmlrpc_errors boolean;    //关闭正常的错误报告,并将错误格式设置为XML-RPC错误信息的格式。
12 xmlrpc_error_number integer;    //用做XML-RPC faultCode元素的值。
13 docref_root string;    //新的错误信息格式包含了对应的参考页面,该页面对错误进行具体描述,或描述了致使该错误发生的函数。为了提供手册的页面,能够在PHP官方网站下载对应的语言手册,并在ini中设置网址到本地对应的地址。
14 docref_ext string;    //参见docref_root。该值必须已点(.)开头。
15 error_prepend_string string;    //在错误信息以前输出的内容。
16 error_append_string string;    //错误信息以后输出的内容。
17 error_log string;    //设置脚本错误将被记录到的文件。该文件必须是web服务器用户可写的。若是syslog被设置,则将错误信息发送到系统日志记录器。

 【相关预约义常量】服务器

   能够在php.ini中使用常量名称,但在php以外,如httpd.conf中,必须使用二进制位掩码。app

 1 //相关预约义变量
 2 E_ERROR    1:致命的运行时错误,将致使脚本终止。该类错误通常不可能恢复。
 3 E_WARNING    2:运行时警告。仅给出提示信息,脚本不会终止。
 4 E_PARSE    4:编译时语法解析错误。解析错误仅仅由分析器产生。
 5 E_NOTICE    8:运行时的通知。表示脚本遇到可能会表现为错误的状况。正常运行的脚本里面也肯能会有相似的通知。
 6 E_CORE_ERROR    16:在PHP初始化启动过程当中出现的致命性错误。相似于E_ERROR可是由PHP引擎核心产生。
 7 E_CORE_WARNING    32:PHP初始化启动过程当中发生的警告。相似于E_WARNING,可是是由PHP核心引擎产生的。
 8 E_COMPILE_ERROR    64:致命的编译时错误。相似于E_ERROR可是由Zend脚本引擎产生的。
 9 E_COPILE_WARNING    128:编译时警告。相似于E_WARNING可是由Zend脚本引擎产生的。
10 E_USER_ERROR    256:用户产生的错误信息。相似于E_ERROR,可是由用户本身在代码中使用trigger_error()产生的。
11 E_USER_WARNING    512:用户产生的警告信息。相似于E_WARNING,可是由用户本身在代码中使用trigger_error()产生的。
12 E_USER_NOTICE    1024:用户产生的通知信息。相似于E_NOTICE,可是由用户本身在代码中使用trigger_error()产生的。
13 E_STRICT    2048:启用PHP对代码的修改建议,以确保代码具备最佳的互操做性和向前兼容性。
14 E_RECOVERABLE_ERROR    4096:可被捕捉的致命错误。表示发生了一个可能很是危险的错误,但尚未致使PHP引擎处于不稳定状态。若是该错误没有被用户自定义句柄捕获(set_error_handler()),将成为一个E_ERROR,从而终止脚本运行。
15 E_DEPRECATED    8192:运行时通知。启用后将会在对将来版本中可能没法正常工做的代码给出警告。
16 E_USER_DEPRECATE    16384:用户产生的警告信息。相似于E_DEPRECATED,可是由用户本身在代码中使用trigger_error()产生的。
17 E_ALL    30719:E_STRICT以外的全部错误和警告信息。

【相关函数】函数

 1 array debug_backtrace([int $options=DEBUG_BACKTRACE_PROVIDE_OBJECT [,int $limit=0]]);
 2 //产生一条PHP的回溯追踪
 3 //截止5.3.6,$option是DEBUG_BACKTRACE_PROVIDE_OBJECT和DEBUG_BACKTRACE_IGNORE_ARGS的位掩码,分别表示是否填充Object的索引和是否忽略args的索引(包括全部的function/method的参数,可以节省内存开销)。5.3.6以前能使用的值只有TRUE和FALSE,表示是否设置DEBUG_BACKTRACE_PROVIDE_OBJECT。
 4 //截止5.4,$limit用于返回堆栈帧的数量。默认值为0,返回全部的堆栈帧。
 5 //返回值是一个包含众多关联数组的数组。
 6 
 7 void debug_print_backtrace([int $options=0[,$limit=0]]);
 8 //打印一条PHP回溯,包括函数调用,被included/required的文件和eval()代码.
 9 //$option:是否忽略args的索引,包括全部的function/method的参数,可以节省内存开销。
10 //$limit:限制返回堆栈帧的数量。默认值0表示返回全部堆栈帧。
11 
12 array error_get_last(void);
13 //获取最后一个错误的相关信息
14 
15 bool error_log(string $message[,int $message_type=0[,string $destination[,string $extra_headers]]]);
16 //把错误信息发送到web服务器的错误日志或保存到一个文件中
17 //$message:被记录的错误信息
18 //$message_type:错误信息发送到何处。可能的信息类型有:0($message发送到PHP的系统日志。使用操做系统的日志机制仍是一个文件,取决于error_log指令设置),1($message发送到$destination设置的邮件地址。第四个参数$extra_headers只有在这个类型里才会被用到),2(再也不是一个选项),3($message被发送到位置为$destination的文件里。字符$message不会默认当作新的一行),4($message直接发送到SAPI的日志处理程序中)。
19 //$destination:由$message_type决定。
20 //$extra_headers:额外的头部。当$message_type设置为1时使用。该信息类型使用了mail()的同一个内置函数。
21 
22 int error_reporting([int $level]);
23 //运行时配置error_reporting指令。设置应该报告何种PHP错误。
24 
25 bool restore_error_handler(void);
26 //使用set_error_handler()改变错误处理函数以后,该函数用于还原以前的错误处理程序(能够是内置的,也能够是用户自定义的函数)。
27 //该函数老是返沪TRUE。
28 
29 bool restore_exception_handler(void);
30 //在使用set_exception_handler()改变异常处理函数以后,该函数能够还原以前的异常处理程序(能够是内置的,也能够是用户自定义的函数)。
31 //该函数老是返回TRUE
32 
33 mixed set_error_handler(callable $error_handler[,int $error_type=E_ALL|E_STRICT]);
34 //设置一个用户自定义的错误处理函数。
35 //$error_handler:用户自定义用于处理脚本中出现错误的函数。handler(int $errno,string $errstr[,string $errfile[,int $errline[,array $errcontext]]];$errno是错误级别;$errstr是错误信息;$errfile是发生错误的文件名;$errline错误发生的行号;$errcontext指向错误发生的活动的符号表,即错误触发处做用域内全部变量的数组。若是该函数返回FALSE,标准的错误处理函数将继续被调用。
36 //$error_type:该参数所制定的错误类型都会绕过PHP标准错误处理程序(除非调用函数返回了FALSE)。error_reporting()设置不会起做用,自定义的错误处理函数仍然会被调用(仍然能够获取error_reporting的当前值)。@error-control operator前缀的语句发生错误时,该值是0.
37 //若是以前有定义过戳无处理程序,返回该程序的名称;若是是内置的错误处理程序或一个无效的回调函数,返回NULL。若是以前的错误处理程序是一个类的方法,返回一个带类和方法名的索引数组。
38 //注意:E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_ERROR,E_COMPILE_WARNING和再调用set_errro_handler()函数所在的文件中产生的大多数E_STRICT不能由用户定义的函数来处理。若是错误发生在脚本执行以前(如文件上传),也不会调用自定义的错误处理程序。
39 
40 callable set_exception_handler(callable $exception_handler);
41 //设置一个默认的异常处理程序,用于没有用try/catch块来捕获的异常。在$exception_handler调用后,异常将终止。
42 //$exception_handler:一个未捕获的异常发生时所调用的函数。该函数必须在调用set_exception_handler()钱定义。且该处理函数接受一个参数,该参数是一个抛出的异常对象。
43 //也能够传递一个NULL值用于重置异常处理函数为默认值。
44 //返回以前定义的异常处理程序的名称,或在错误时返回NULL。若是以前没有定义错误处理程序,也会返回NULL。若是参数使用NULL重置程序为默认状态,将返回TRUE。
45 
46 bool trigger_error(string $error_msg[,int $error_type=E_USER_NOTICE]);
47 //触发一个用户级别的error/warning/notice信息。它能关联内置的错误处理程序,也能使用用户自定义的函数做为新的错误处理函数。
48 //$error_msg:该error的特定错误信息,长度限制在1024个字符,超过1024长度的字符将被截断。
49 //$error_type:该error所指定的错误类型。仅E_USER系列常量对其有效。默认值E_USER_NOTICE.
50 //若是指定了错误的$error_type会返回FALSE,正确则返回TRUE。
51 //该函数是user_error()的别名。
相关文章
相关标签/搜索