我可以throw new Exception
catch
失败并对此采取措施时trigger_error()
。如果我对此无能为力,那我就throw new Error
。
现在PHP 7对我来说有些新东西:if (!mail(...))
throw new Error('...');
。
例如,
if (!mail(...))
trigger_error('...');
或
catch
如果我不想mail()
错误,或者在throw new Error()
失败的情况下要做什么,应该使用trigger_error()
还是普通的throw new Error()
?
与简单的trigger_error()
和简单的mydat<-data.frame(DB=c("NO","NO","NO","NO",'YES','YES','YES','YES'),
DL =c("NO","NO","YES","YES",'NO','NO','YES','YES'))
mydat$NEW <- ifelse(mydat$DB=="YES", "DB",
ifelse(mydat$DL=="YES", "DL",
ifelse(mydat$DB=="YES" & mydat$DL=="YES","DBL", "NO")))
相比,我们应该使用哪些实例?
答案 0 :(得分:2)
正如您已经提到的,\Error
类是PHP 7中引入的。
由于它实现了Throwable
,因此它的行为就像异常一样。
它也是以下内容的子类:
ArithmeticError
DivisionByZeroError
AssertionError
ParseError
TypeError
ArgumentCountError
但是,它的行为不像trigger_error()
,实际上它的行为完全类似于异常(主要是因为它是一个例外)。
如果您trigger_error()
不能捕获它,因为它也不例外。尽管有are workarounds。
这主要是我的反对。
我认为存在此错误是为了更清楚地分离错误和异常,未来的计划可能包括弃用trigger_error
并仅保留Error
。
回答您的问题。
我会坚持使用throwing
而不是trigger_error
。可以捕捉,是OOP。