- throw/throws
抛出异常
- try
try{}//捕捉异常用来检测在try块中的代码是否有异常,经常和catch连用
- catch
catch(异常类型){ }// try捕捉到异常时才会执行代码块
作用:将捕捉的异常进行处理 和try连用
常见:
catch (Exception e){
e.printStackTrace();//打印异常
如果不打印异常,一旦出错想让程序停下来可以直接return语句
(根据类型返回值,若函数使void类型,就啥也不返回)
}
- finally
finally{ }//无论是否有异常,都会执行(但是好像线程中不一定会执行)
作用:一般用来释放资源,善后工作
注意:
在线程中finally的作用很关键,有的时候没有finally,一个程序很多个try-catch会造成虚拟机拥堵,内存溢出直接就死掉(这方面目前我还不太了解)
但是如果随意的大量的使用try-catch-finally就很可能淹没已经存在的异常,影响代码的健壮性等等,所以异常处理机制要合理使用
尚未解决的问题: finally什么时候不会执行