php – 理解异常

我已阅读文章,试图了解在PHP中使用的异常,我已经完成了论坛中已经给出的答案.对我来说至少有一点意义的答案之一是这一个Are exceptions in php really that useful?

这是一个简单的函数,用于在使用和不使用异常的情况下查找整数的倒数(source):

除外:

function inverse($x) {
  if ($x==0) { 
     throw new Exception('Division by zero.');
  } else { 
     return 1/$x;
  }
}    

try {
  inverse();
} 
catch (Exception $e) {
  echo $e->getMessage();
}

没有例外:

function inverse($x) {
  if ($x==0) { 
     echo "I'm zero. Don't let me be the denominator."; 
  } else { 
     return 1/$x;
  }
}

所以这是我的问题,为什么以及何时应该使用一个而不是另一个

解决方法

关于“何时使用例外”有各种各样的意见.我的个人意见是:

>如果您正在使用自己的代码,那么基本上不需要抛出异常,因为您需要为它编写自己的处理程序 – 这也可以在不抛出异常的情况下完成.
>如果您正在开发其他程序员正在使用的API,那么抛出异常会很有用,因此使用您的代码的开发人员知道,他必须处理错误,并了解错误原因是什么. (而不是只是获取null他可能会捕获NumberToSmallException,NotANumberException,….)

换句话说:当你已经知道如何处理异常时 – 不要抛出异常.如果处理应由另一位开发人员负责,请使用您的代码 – 抛出它.

不应使用异常来控制应用程序逻辑的流程.因此使用if / else语句.

但这些只是我的十美分.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...