Java,过度使用 try/catch 会导致性能问题吗?

标签 java performance optimization

我想到了一个事实,如果出现错误,使用 try 和 catch 有助于防止崩溃,但我很好奇如果我过度使用 try 和 catch block 是否会对性能产生任何影响。

继续:如果我在任何地方都使用 try 和 catch(几乎),对性能有什么影响吗?

最佳答案

异常抛出/处理确实会带来轻微的性能损失(具体情况因具体情况而异),但性能不应该是您的首要考虑因素。

  1. 正确性:首先,确保您的代码执行其需要执行的操作。不要将正常用例视为异常,例如,如果用户在字段中输入了错误的值,那没什么特别的,不需要为此抛出异常。但是,如果某些事情确实异常(比如您无法连接到数据库),并且您无法在它发生时处理它,则抛出异常。如果异常来自“下方”,来自 JDK 类或第三方库,您别无选择,只能处理它。
  2. 可读性。不断捕获和重新抛出异常会使您的代码几乎无法跟踪、调试或维护。不留痕迹地吞噬异常也是如此。相反,您应该追求的是处理异常的一致策略。基本上,您应该只在您可以对其采取措施的级别上处理异常。
  3. 性能。一旦您对前两个进行排序,这应该是您的最后一个停靠港。您不太可能到达代码正确且可读的地方,并且异常处理仍然是应用程序的主要瓶颈,但如果您到达那里,您可以尝试返回错误代码而不是抛出异常,或完全重组您的代码以避免它们。

关于Java,过度使用 try/catch 会导致性能问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41272315/

相关文章:

java - 批量插入如何知道所有记录都插入了哪条记录没有插入

java - 如果 servlet 什么都不做,servlet 容器会做什么?

java - 打开另一个 JFrame 时 JFrame 卡住

linux - 直接从 linux 内核访问系统性能数据

java - 迭代减少到空矩阵

java.lang.IllegalArgumentException : Keys to send should be a not null CharSequence

performance - ADD 1 真的比 INC 快吗? x86

Java - 关于性能和内存使用,为什么最好将字符串使用到静态字段中,而不是每次需要时都声明它?

matlab - 计算像素邻域的最快方法

python - 使用 SciPy 最小化估计逆 Hessian