基本的异常处理:
try
{
//业务实现代码
...
}
catch (Exception e)
{
alert 输入不合法
goto retry
}
如果执行try块里的业务逻辑代码时出现异常,系统自动生成一个异常对象,该异常对象被提交给Java运行时环境,这个过程被称为抛出(throw)异常。 通常情况下,如果try块被执行一次,则try块被执行一次,则try块后只有一个catch块会被执行,绝不可能有多个catch块被执行,除非在循环中使用了continue开始下一次循环,下一次循环又重新运行了try块,这才可能导致多个catch块被执行。Java把所有非正常情况分成两种:异常(Exception)和错误(Error),它们都集成Throwable父类。
Error错误:一般是与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败等,这种错误无法恢复或不可能补货,将导致应用程序终端,不会使用catch块来补货Error对象。回收资源:try块里打开了一些物理资源(例如数据库连接、网络连接和磁盘文件等),这些物理资源都必须显示回收。
1、finally回收
try
{
//业务实现代码
}
catch (SubException e)
{
//异常处理块1
}
catch (SubException2 e)
{
//异常处理块2
}
......
finally
{
//资源回收块
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
logger.error(e.getMessage());
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
logger.error(e.getMessage());
}
}
}
2、Java7自动关闭资源的try语句
try关键字后面紧跟一队圆括号,圆括号可以声明、初始化一个或多个资源,此处的资源值得是那些必须在程序结束时显示关闭的资源(比如数据库连接、网络连接等),try语句在该语句结束时自动关闭这些资源。
try(Connection connection = this.ds.getConnection(); CallableStatement ps = connection.prepareCall(query)){
{
}