php无法捕获异常的解决方法

  介绍

小编给大家分享一下php无法捕获异常的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

解决php无法捕获异常的方法:首先使用函数【试,抓住】,然后输出异常完整信息,接着定义异常,代码为【抓(FileExistException $ e)】,最后重抛异常给上层,代码为【抓(异常e)美元】。

 php无法捕获异常的解决方法

<强>解决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无法捕获异常的解决方法