finally语句的使用
【1】finally下方的语句一定会执行,通常定义关闭资源代码,因为资源必须释放
【2】finally只有一种情况不会执行。当执行到System.exit(0);(系统退出,jvm结束),便不会再执行finally语句
比如连接数据库,
1、客户端每次连接数据库,操作数据库数据,就立马关闭数据库连接,无论数据操作是否成功,一定关闭资源。因为数据库的服务端的连接数量是有限,如果多个客户端占用资源不断开,不仅对数据库照成运行压力大还让其他客户端就无法访问
public static void main (String[] args)throws NoEexception {
try{
连接数据库;
数据操作;
}
catch(SQLException e){
会对数据库进行异常处理;
//【1】抛出操作数据异常处理(仅是告诉客户端操作数据有问题,客户端不需要知道异常处理过程)
throw new NoEexception;
}
finally{
关闭数据库;
}
}
//【2】在内部封装操作数据异常处理
class NoEexception extends Exception{
NoEexception(){
System.out.println("该操作数据有毛病");
}
比如前台销售问仓库取货,结果货坏了,那么仓库就自己解决货货坏的问题,然后前台销售取货,告诉前台销售货坏了没货就行了。(而不是让前台销售货解决问题)
其他语句try--finally
记住:catch是用于处理异常。如果没有catch就代表异常没有被处理,如果该异常时检测是异常。那么必须声明
try{
//【1】检测问题但是未解决
throw new Eexception;
}
finally{
//【2】不管有没有问题先关闭资源
关闭资源;
}