很多站长朋友们都不太清楚php常见异常处理,今天小编就来给大家整理php常见异常处理,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 thinkphp前端显示网络异常 2、 php 异常处理 3、 如何处理 PHP 的错误与异常 4、 PHP5中的异常处理详解[1] thinkphp前端显示网络异常THINKPHP作为国内比较出色的PHP框架,近年发展还是比较迅速,目前最新版本已经到TP5.1,安全性能等都有不少提升,使用的程序员也越来越多,所以THINKPHP制作的网站也越来越多,今天,方维网络就来分析THINKPHP网站打不开的原因有哪些?当你的网站打不开时,方便你排查问题!
一、服务器挂了。如果网站打不开的表现是网络连接错误,没有输出任何错误信息,那么很可能就是服务器网络出问题或者服务器死机了。
二、数据库挂了。一般会提示错误信息,如果没有屏蔽错误,会直接显示数据库连接错误。
三、网站空间满了。不管是nginx还是apache,或是THINKPHP本身,都会产生很多日志文件,当硬盘不够大的时候,THINKPHP无法生成缓存文件,导致网站打不开出错。这种问题很简单,就是从服务器删除占用比较大的日志文件或者对服务器进行扩容。
四、apache、nginx或者是IIS挂了,这个可以进服务器查看,可以重启下。
五、网站文件被篡改,一般是网站密码泄露或者网站已经被黑客攻破的情况。这种可以通过FTP软件查看网站文件的修改日期来判断。
六、程序本身有问题,如存在死循环等BUG,这个就需要程序员去调试分析,这种出现概率比较低,因为一般早期就可发现。
七、访问量太大,服务器无法应付,这种情况应该升级服务器,或者 使用负载均衡分服务器部署,当然也可以使用一些缓存来缓解。
八、服务器网络和本地网络出现故障,如在国内访问国外服务器的网站,速度非常慢导致网站打不开。
九、服务器放在国外,然后服务器IP被国内屏蔽导致打不开,这种只能换服务器了。
THINKPHP网站打不开的原因很多,但最常见的就是:硬盘已满或者服务器出故障。
深圳方维网络专注于网站定制,定制各类品牌官网、商城、平台、旅游网站和小程序等,欢迎有需求客户咨询。
php 异常处理这个东西的作者可能是想当异常发生的时候利用这个对象显示一些错误信息,但是实际上没什么作用,自己给自己找麻烦。
这是典型的新手代码,在不完全了解PHP异常处理机制的情况下搞出来的东西。异常处理应该继承Exception类。
如何处理 PHP 的错误与异常注册好自己的异常处理函数,可以捕获出现的异常,一般写框架的时候比较喜欢用。
set_error_handler('suda\\core\\System::uncaughtError');
set_exception_handler('suda\\core\\System::uncaughtException');
PHP5中的异常处理详解[1]首先是try catch
〈?php $path = D:\\\\in txt ; try //检测异常 { file_open($path); } catch(Exception $e) //捕获异常 { echo $e 〉getMessage(); }
function file_open($path) { if(!file_exists($path)) //如果文件无法找到 抛出异常对象 { throw new Exception( 文件无法找到 ); }
if(!fopen($path r )) //如果文件无法打开 抛出异常对象 { throw new Exception( 文件无法打开 ); } } ?〉
注意用$e 〉getMessage()输出异常信息
输出异常完整信息
〈?php $path = D:\\\\in txt ;
try { file_open($path); //尝试打开文件 } catch(Exception $e) { echo 异常信息 $e 〉getMessage() \\n ; //返回用户自定义的异常信息 echo 异常代码 $e 〉getCode() \\n ; //返回用户自定义的异常代码 echo 文件名 $e 〉getFile() \\n ; //返回发生异常的PHP程序文件名 echo 异常代码所在行 $e 〉getLine() \\n ; //返回发生异常的代码所在行的行号 echo 传递路线 ; print_r($e 〉getTrace()); //以数组形式返回跟踪异常每一步传递的路线 echo $e 〉getTraceAsString(); //返回格式化成字符串的getTrace函数信息 }
function file_open($path) { if(!file_exists($path)) //如果文件不存在 则抛出错误 { throw new Exception( 文件无法找到 ); }
if(!fopen($path r )) { throw new Exception( 文件无法打开 ); } } ?〉
3 扩展异常 即自定义异常
〈?php class FileExistsException extends Exception{} //用于处理文件不存在异常的类 class FileOpenException extends Exception{} //用于处理文件不可读异常的类
$path = D:\\\\in txt ;
try { file_open($path); } catch(FileExistsException $e) //如果产生FileExistsException异常则提示用户确认文件位置 { echo 程序在运行过程中发生了异常 $e 〉getMessage() \\n ; echo 请确认文件位置 ; } catch(FileOpenException $e) //如果产生FileOpenException异常则提示用户确认文件的可读性 { echo 程序在运行过程中发生了异常 $e 〉getMessage() \\n ; echo 请确认文件的可读性 ; } catch(Exception $e) { echo [未知异常] ; echo 异常信息 $e 〉getMessage() \\n ; //返回用户自定义的异常信息 echo 异常代码 $e 〉getCode() \\n ; //返回用户自定义的异常代码 echo 文件名 $e 〉getFile() \\n ; //返回发生异常的PHP程序文件名 echo 异常代码所在行 $e 〉getLine() \\n ; //返回发生异常的代码所在行的行号 echo 传递路线 ; print_r($e 〉getTrace()); //以数组形式返回跟踪异常每一步传递的路线 echo $e 〉getTraceAsString(); //返回格式化成字符串的getTrace函数信息 }
function file_open($path) { if(!file_exists($path)) { throw new FileExistsException( 文件无法找到 ); //抛出FileExistsException异常对象 }
if(!fopen($path r )) { throw new FileOpenException( 文件无法打开 ); //抛出FileOpenException异常对象
lishixinzhi/Article/program/PHP/201311/21471
关于php常见异常处理的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php常见异常处理 php7异常处理的详细内容...