php - 在 php 中使用自定义异常类有什么意义?

标签 php exception-handling try-catch

在一些库中,通常的做法是为每个错误条件制作自定义异常类,例如:

class FileNotFound_Exception extends Exception {}

您可以处理某些类型的异常,但是您无法阅读所有库的所有源代码来记住每个异常类,也无法充分利用使用自定义异常。大多数时候我只是用基本异常类来捕获它们:

catch (Exception $e)
{
    // log and display friendly error
}

是否有其他方法可以利用自定义异常类,而无需编写长长的 catch block 列表? 我喜欢异常,但不知道如何正确使用它们。谢谢。

最佳答案

拥有自己的异常类的好处是,作为库的作者,您可以捕获并处理它。

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);
  }
}

关于php - 在 php 中使用自定义异常类有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3735079/

相关文章:

javascript - 将编码后的 php json 传递给 javascript

java - 打印有关异常的所有信息?

c++ - std::unique_ptr::reset 和构造函数异常

类型单元的 Scala 表达式不确认类型字符串

php - 将数据从 MYSQL 导入到网络服务器上的 JSON 文件

php - 如何告诉用户数据库中没有用户输入的特定日期的数据

java - 如何最好地检测某些异常?

java - 少尝试/多捕获

php - WordPress主题无法上传到Amazon EC2?

c# - SqlMembershipProvider Membership.GetUser 按名称失败