我知道在 C 中错误代码是处理错误的方法。但是为什么会出现异常处理呢?那里的历史是什么?与错误代码相比,异常处理有什么优势?
非常感谢您提供的任何信息。
我知道在 C 中错误代码是处理错误的方法。但是为什么会出现异常处理呢?那里的历史是什么?与错误代码相比,异常处理有什么优势?
非常感谢您提供的任何信息。
In the C language exceptions are not available. So, the typical way for error handling is to let functions return error values (which should be checked by the calling function).
In modern languages (e.g., C++, Java, etc.) exceptions are available. They allow to propagate the error until some component can handle it. For example, the calling function may not be capable of handling the error of the called function. Through excpetions, the error can be propagated at higher layers where it can be handled.
See here for more information.
简短的回答——它让你只在你真正关心的时候处理错误检查。
没有例外,你会发现你的很多代码都是关于错误检查的——每当你调用一个函数时,你必须检查它是否返回了一个错误,如果它返回了——返回一个错误给你的调用者。
除了例外,您的大部分代码都可以简单地调用函数,而忽略失败。顶级函数将在 try-catch 块中运行所有内容,并且某处的任何异常都将被捕获和处理。
它假定您并不真正关心发生了哪个特定错误。但你通常不会。
这样,异常允许您编写更清晰的代码,主要处理您想要做的事情,而不是可能出错的事情(当事情出错时不会牺牲正确的行为)。
异常处理通过在发生异常时将程序的执行转移到适当的异常处理程序来工作。
例如:您的网站显示用户的银行帐户详细信息。
如果银行数据库突然宕机,想象一下如果一个带有大量 java 异常消息的突然错误页面在屏幕上喷涌而出,用户会有什么感觉?
首先,这会很尴尬,其次,用户会生气。
相反,如果你的代码捕捉到这个数据库宕机的场景并在屏幕上显示一条优雅的消息,说“我们的系统目前遇到了一些困难。请过一段时间再试。谢谢”,那会好得多,不是吗?
这正是我们拥有或者更确切地说我们需要异常处理的原因。