title: 异常(exception)和执行失败有什么区别？
desc: 例如一个User Class 的 add 方法，在成功的情况下返回用户对象实例，在失败的情况返回False并可以通过getError方法获取失败原因字符串........<br><br>说到这里，我好像明白了，难道add方法总是应该返回用户对象，否则抛出异常吗？<br>但是这样的话，他们的代码量没什么区别的啊。问题在于即使调用add方法处没有捕捉异常，该异常也能进一步向上抛出直至被处理或引发进程崩溃？可是说到底，这和程序自然崩溃有什么区别呢？<br><br>---- 以上为自言自语，下面是问题 ---- <br><br>抛出异常和返回false的区别是什么，两者在什么场景下使用？
topic: Python
content: 都是错误处理的策略，OO语言更倾向异常，相比较判断一个函数可能的错误状况来说，“抛出”状态完整的异常对象被认为是更好的封装 你说的情况下，错误即false是最简单的情况，这种情况下，异常未必有优势一般认为用异常可以简化复杂的错误处理代码，并且只要程序不需要终止执行，try catch比if else的代码更可读（错误处理的策略明显，状态可以更丰富，虽然这不是绝对的）。result funcif result ERRNO1 ..
answerer_tags: https://www.linkev.com/?a_aid=itlr