最近在做一个项目时用到了多线程,开启一定数量的线程无限循环交易,在交易过程中难免会遇到一些异常,如果这时候异常不处理当前线程也就终止了,通常我们会在交易流程中处理需要捕获的异常。但这样做实际上并不全面,最就遇到了这种问题,交易过程中抛出的不是必须捕获的异常,甚至有些时候我们根本不知道这个过程会抛出出什么样的异常,如果在这个时候希望线程不被终止而是继续下一下,我们通常就要做一个模糊的处理。在线程的开始到结束 加一个异常处理
try{
//对应的操作
}catch(Exception e){
//处理异常
}finally{
//释放资源
}
有人可能觉得 Exception 有些大了,实际不然,因为你也不知道会抛出什么异常。被0除,NumberFormatException,是一些不是必须捕获的异常,遇到这些异常不处理会造成一些不必要的麻繁。
为了线程不会被这些异常终止,这种做法也只能说是一种补就的办法。
像NumberFormatException 这种异常是应该在做数字转换的时候就处理,但你不能要求每个人都和你一样严谨,自己的代码写的严格点才不会因为别人的错误给你还来不必要的麻繁。