Java异常机制优化方案

起因
在上线了Java项目之后,运行了一段时间发现,因为抛出大量异常导致了服务中断,于是想着怎么解决这个问题。
在某些特定的条件下我们需要抛出异常,但异常抛出之后怎么处理其实是一个很关键的问题。
处理不当就会在运行上造成阻塞或崩溃。
既然捕获了异常,就要对它进行适当的处理。不要捕获异常之后又把它丢弃,不予理睬。
异常改变了程序正常的执行流程。这个道理虽然简单,却常常被人们忽视。如果程序用到了文件、Socket、JDBC连接之类的资源,即使遇到了异常,也要正确释放占用的资源。为此,Java提供了一个简化这类操作的关键词finally。
finally是样好东西:不管是否出现了异常,Finally保证在try/catch/finally块结束之前,执行清理任务的代码总是有机会执行。遗憾的是有些人却不习惯使用finally。
当然,编写finally块应当多加小心,特别是要注意在finally块之内抛出的异常??这是执行清理任务的最后机会,尽量不要再有难以处理的错误。
其次我们应该使用自定义异常,去尽可能的处理掉已知的报错,而不是完全交由jvm去处理。,良好的代码架构和风格也是避免问题出现的小细节。