在php中使用自定义异常类有什么意义?
在某些库中,通常为每个错误条件创建自定义异常类,例如:在php中使用自定义异常类有什么意义?,php,exception-handling,try-catch,Php,Exception Handling,Try Catch,在某些库中,通常为每个错误条件创建自定义异常类,例如: class FileNotFound_Exception extends Exception {} 您可以处理特定类型的异常,但是您不能读取所有库的所有源代码来记住每个异常类,也不能充分利用使用自定义异常。大多数时候,我只是用基本异常类捕捉它们: catch (Exception $e) { // log and display friendly error } 有没有其他方法可以利用自定义异常类,而不用编写一长串catch块?
class FileNotFound_Exception extends Exception {}
您可以处理特定类型的异常,但是您不能读取所有库的所有源代码来记住每个异常类,也不能充分利用使用自定义异常。大多数时候,我只是用基本异常类捕捉它们:
catch (Exception $e)
{
// log and display friendly error
}
有没有其他方法可以利用自定义异常类,而不用编写一长串catch块?
我喜欢例外情况,但不知道如何正确使用它们。谢谢。拥有自己的异常类的好处是,作为库的作者,您可以捕获并处理它
try {
if(somethingBadHappens) {
throw MyCustomException('msg',0)
}
} catch (MyCustomException $e) {
if(IcanHandleIt) {
handleMyCustomException($e);
} else {
//InvalidArgumentException is used here as an example of 'common' exception
throw new InvalidArgumentException('I couldnt handle this!',1,$e);
}
}
自定义异常类允许您正确地路由错误,以便更好地处理 如果你有课
class Known_Exception extends Exception {}
还有一个像这样的试抓块:
try {
// something known to break
} catch (Known_Exception $e) {
// handle known exception
} catch (Exception $e) {
// Handle unknown exception
}
然后您知道异常$e是一个未知的错误情况,可以相应地处理它,这对我非常有用。(文章)