Java中,主动抛出运行时异常,最后异常由谁处理呢?
如下代码:
public int getTotalPages(int rowsPerPage) {
Connection conn;
PreparedStatement pstmt;
ResultSet rs;
conn = ConnectionUtils.getConnection();
try {
pstmt = conn.prepareStatement(getTotalRows);
rs = pstmt.executeQuery();
rs.next();
int totalRows = rs.getInt(1);
if (totalRows % rowsPerPage == 0) {
return totalRows / rowsPerPage;
} else {
return totalRows / rowsPerPage + 1;
}
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
主动抛出运行时异常,可以不声明抛出异常,即可以不在方法签名处使用throws声明抛出异常,那么调用getTotalPages()时就可以不处理异常,那么请问当方法getTotalPages()真正抛出运行时异常时,最后是谁在处理这个异常呢?
比如我在main方法中调用方法getTotalPages():
public static void main(String[] args) {
ProjectDAO pdao = new ProjectDAO();
pdao.getTotalPages(5);
}
结果真正抛出运行时异常了,但是在main方法中又没有try/catch,也没有声明抛出异常,那么方法getTotalPages抛出的异常最后是怎么处理的呢?
回答
jvm 呀 !在真正的项目中遇到这种的运行时异常 要根据实际的业务逻辑 决定是把异常吃掉,还是终止业务。