This article describes PHP exception handling methods through examples. Share it with everyone for your reference. The details are as follows:
?
3
4
5
|
<🎜>$path = "D://in.txt";<🎜> <🎜>try //Detect exception<🎜> <🎜>{<🎜> <🎜>file_open($path);<🎜> <🎜>}<🎜> <🎜>catch(Exception $e) //Catch exception<🎜> <🎜>{<🎜> <🎜>echo $e->getMessage(); } function file_open($path) { if(!file_exists($path)) //If the file cannot be found, throw an exception object { throw new Exception("File cannot be found", 1); } if(!fopen($path, "r")) //If the file cannot be opened, throw an exception object { throw new Exception("File cannot be opened", 2); } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <🎜>$path = "D://in.txt";<🎜> <🎜>//The path where the file is located<🎜> <🎜>file_open($path);<🎜> <🎜>//Call the file_open function<🎜> <🎜> <🎜> <🎜>function file_open($path)<🎜> <🎜>{<🎜> <🎜>if(!file_exists($path))<🎜> <🎜>//If the file cannot be found, throw an exception object<🎜> <🎜>{<🎜> <🎜>throw new Exception("File cannot be found", 1);<🎜> <🎜>}<🎜> <🎜>if(!fopen($path, "r"))<🎜> <🎜>//If the file cannot be opened, throw an exception object<🎜> <🎜>{<🎜> <🎜>throw new Exception("File cannot be opened", 2);<🎜> <🎜>}<🎜> <🎜>}<🎜> <🎜>?> |
?
|
<🎜>function exception_handler($e)<🎜> <🎜>//用于处理异常的函数<🎜> <🎜>{<🎜> <🎜>echo "未捕获的异常:".$e->getMessage(); } set_exception_handler("exception_handler"); //设置异常处理函数 try //检测异常 { $path = "D://in.txt"; } catch(Exception $e) //捕获异常 { echo $e->getMessage(); } file_open($path); //调用函数打开文件 function file_open($path) { if(!file_exists($path)) //如果文件无法找到,抛出异常对象 { throw new Exception("文件无法找到", 1); } if(!fopen($path, "r")) //如果文件无法打开,抛出异常对象 { throw new Exception("文件无法打开", 2); } } ?> |
?
|
<🎜>$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("文件无法找到", 1); } if(!fopen($path, "r")) { throw new Exception("文件无法打开", 2); } } ?> |
?
|
<🎜>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("文件无法找到", 1); //抛出FileExistsException异常对象 } if(!fopen($path, "r")) { throw new FileOpenException("文件无法打开", 2); //抛出FileOpenException异常对象 } } ?> |
?
|
<🎜>class FileExistsException extends Exception{}<🎜> <🎜>//用于处理文件不存在异常的类<🎜> <🎜>class FileOpenException extends Exception{}<🎜> <🎜>//用于处理文件不可读异常的类<🎜> <🎜>$path = "D://in.txt";<🎜> <🎜>try<🎜> <🎜>{<🎜> <🎜>file_open($path); //尝试打开文件<🎜> <🎜>}<🎜> <🎜>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函数信息 } catch(FileExistsException $e) //如果产生FileExistsException异常则提示用户确认文件位置 { echo "程序在运行过程中发生了异常:".$e->getMessage()."/n"; echo "请确认文件位置。"; } catch(FileOpenException $e) //如果产生FileOpenException异常则提示用户确认文件的可读性 { echo "程序在运行过程中发生了异常:".$e->getMessage()."/n"; echo "请确认文件的可读性。"; } function file_open($path) { if(!file_exists($path)) //如果文件不存在,则输出错误 { throw new FileExistsException("文件无法找到", 1); } if(!fopen($path, "r")) { throw new FileOpenException("文件无法打开", 2); } } ?> |
?
|
<🎜>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) { try { if(!file_exists($path)) { throw new FileExistsException("文件无法找到", 1); } if(!fopen($path, "r")) { throw new FileOpenException("文件无法打开", 2); } } catch(Exception $e) //捕获异常 { echo "file_open函数在运行过程中出现异常"; throw $e; //重掷异常 } } ?> |
I hope this article will be helpful to everyone’s PHP programming.