之前对抛出的作用的理解是,是逻辑处理层和异常处理层分离。如果不是这样,那么直接用 if...else 语句或者自己写一个不用继承 Exception 的类都可以达到目的了(比如记录日志)。
但是 php 中异常要 throw 才能 catch ,但是 throw 的时候感觉避免不了 if...else ,这样感觉这个 throw 有点多余啊?还是我的理解有问题 ?
比如这两种,有什么区别?
try {
if (...) {
throw new Exception();
}
} catch (Exception $e) {
...
}
if (...) {
MyException::log() // 记录或者处理
}
如果不用 throw 就确实能把逻辑处理层和异常处理分离开
try {
...
} catch (AException $e) {
...
} catch (BException $e) {
...
} ...
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.