我想到了一个事实,如果出现错误,使用 try 和 catch 有助于防止崩溃,但我很好奇如果我过度使用 try 和 catch block 是否会对性能产生任何影响。
继续:如果我在任何地方都使用 try 和 catch(几乎),对性能有什么影响吗?
最佳答案
异常抛出/处理确实会带来轻微的性能损失(具体情况因具体情况而异),但性能不应该是您的首要考虑因素。
- 正确性:首先,确保您的代码执行其需要执行的操作。不要将正常用例视为异常,例如,如果用户在字段中输入了错误的值,那没什么特别的,不需要为此抛出异常。但是,如果某些事情确实异常(比如您无法连接到数据库),并且您无法在它发生时处理它,则抛出异常。如果异常来自“下方”,来自 JDK 类或第三方库,您别无选择,只能处理它。
- 可读性。不断捕获和重新抛出异常会使您的代码几乎无法跟踪、调试或维护。不留痕迹地吞噬异常也是如此。相反,您应该追求的是处理异常的一致策略。基本上,您应该只在您可以对其采取措施的级别上处理异常。
- 性能。一旦您对前两个进行排序,这应该是您的最后一个停靠港。您不太可能到达代码正确且可读的地方,并且异常处理仍然是应用程序的主要瓶颈,但如果您到达那里,您可以尝试返回错误代码而不是抛出异常,或完全重组您的代码以避免它们。
关于Java,过度使用 try/catch 会导致性能问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41272315/