介绍
小编给大家分享一下php无法捕获异常的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
解决php无法捕获异常的方法:首先使用函数【试,抓住】,然后输出异常完整信息,接着定义异常,代码为【抓(FileExistException $ e)】,最后重抛异常给上层,代码为【抓(异常e)美元】。
引用>
<强>解决php无法捕获异常的方法:强>
1,首先是尝试,抓住
& lt; php ? $ path=癉: \ \ in.txt"; 试着//检测异常 { file_open(路径); } 抓住(异常e美元)//捕获异常 { echo $ e→getMessage (); } 函数file_open(路径)美元 { 如果(! file_exists(路径)美元)//如果文件无法找到,抛出异常对象 { 抛出新的异常(“文件无法找到“,1); } 如果(!fopen(路径,美元“r"))//如果文件无法打开,抛出异常对象 { 抛出新的异常(“文件无法打开“,2); } } ?在注意用$ e→getMessage()输出异常信息。
2,输出异常完整信息
& lt; php ? $ path=癉: \ \ in.txt"; 试一试 { file_open(路径);//尝试打开文件 } 抓住(异常e)美元 { 回声“异常信息:“。e→美元干净自己的getMessage () \ n"//返回用户自定义的异常信息 回声“异常代码:“。e→美元getCode()干净\ n";//返回用户自定义的异常代码 回声“文件名:“。e→美元getFile()的管理者;\ n";//返回发生异常的PHP程序文件名 回声“异常代码所在行“。e→美元getLine()干净\ n";//返回发生异常的代码所在行的行号 回声“传递路线:“;; print_r ($ e→getTrace ());//以数组形式返回跟踪异常每一步传递的路线 echo $ e→getTraceAsString ();//返回格式化成字符串的getTrace函数信息 } 函数file_open(路径)美元 { 如果(! file_exists(路径)美元)//如果文件不存在,则抛出错误 { 抛出新的异常(“文件无法找到“,1); } 如果(!fopen(路径,美元“r")) { 抛出新的异常(“文件无法打开“,2); } } ?在3,扩展异常,即自定义异常
& lt; php ? 类FileExistsException扩展异常{}//用于处理文件不存在异常的类 类FileOpenException扩展异常{}//用于处理文件不可读异常的类 $ path=癉: \ \ in.txt"; 试一试 { file_open(路径); } 抓住(FileExistsException $ e)//如果产生FileExistsException异常则提示用户确认文件位置 { 回声“程序在运行过程中发生了异常:“。e→美元干净自己的getMessage () \ n" 回声“请确认文件位置!”; } 抓住(FileOpenException $ e)//如果产生FileOpenException异常则提示用户确认文件的可读性 { 回声“程序在运行过程中发生了异常:“。e→美元干净自己的getMessage () \ n" 回声“请确认文件的可读性!”; } 抓住(异常e)美元 { 回声“[未知异常]“; 回声“异常信息:“。e→美元干净自己的getMessage () \ n"//返回用户自定义的异常信息 回声“异常代码:“。e→美元getCode()干净\ n";//返回用户自定义的异常代码 回声“文件名:“。e→美元getFile()的管理者;\ n";//返回发生异常的PHP程序文件名 回声“异常代码所在行“。e→美元getLine()干净\ n";//返回发生异常的代码所在行的行号 回声“传递路线:“;; print_r ($ e→getTrace ());//以数组形式返回跟踪异常每一步传递的路线 echo $ e→getTraceAsString ();//返回格式化成字符串的getTrace函数信息 } 函数file_open(路径)美元 { 如果(! file_exists(路径)美元) { 把新的FileExistsException(“文件无法找到“,1);//抛出FileExistsException异常对象 } 如果(!fopen(路径,美元“r")) { 把新的FileOpenException(“文件无法打开“,2);//抛出FileOpenException异常对象 } } ?在4,重抛异常给上层
& lt; php ? 类FileExistsException扩展异常{}//用于处理文件不存在异常的类 类FileOpenException扩展异常{}//用于处理文件不可读异常的类 $ path=癉: \ \ in.txt"; 试一试 { file_open(路径); } 抓住(FileExistsException $ e)//如果产生FileExistsException异常则提示用户确认文件位置 { 回声“程序在运行过程中发生了异常:“。e→美元干净自己的getMessage () \ n" 回声“请确认文件位置!”; } 抓住(FileOpenException $ e)//如果产生FileOpenException异常则提示用户确认文件的可读性 { 回声“程序在运行过程中发生了异常:“。e→美元干净自己的getMessage () \ n" 回声“请确认文件的可读性!”; } 抓住(异常e)美元 { 回声“[未知异常]“; 回声“异常信息:“。e→美元干净自己的getMessage () \ n"//返回用户自定义的异常信息 回声“异常代码:“。e→美元getCode()干净\ n";//返回用户自定义的异常代码 回声“文件名:“。e→美元getFile()的管理者;\ n";//返回发生异常的PHP程序文件名 回声“异常代码所在行“。e→美元getLine()干净\ n";//返回发生异常的代码所在行的行号 回声“传递路线:“;; print_r ($ e→getTrace ());//以数组形式返回跟踪异常每一步传递的路线 echo $ e→getTraceAsString ();//返回格式化成字符串的getTrace函数信息 } 函数file_open(路径)美元 { 试一试 { 如果(! file_exists(路径)美元) { 把新的FileExistsException(“文件无法找到“,1); } 如果(!fopen(路径,美元“r")) { 把新的FileOpenException(“文件无法打开“,2); } } 抓住(异常e美元)//捕获异常 { 回声“file_open函数在运行过程中出现异常“; 把$ e;//重掷异常 } } ?在php无法捕获异常的解决方法