我在使异常做我想做的时候遇到一些问题!我创建了一个servlet,我想处理所有异常。我也需要帮助的这种情况下的班级建设也可以在这里看到:
Servlet:此异常处理仅适用于1种方法,
try {
completed = func.addNewOperator(userId, name, ini, cpr, password, role);
}catch (Exception e) {
Error = "There was a problem with database access";
response.sendRedirect("SystemError.jsp?Error_resultat=" + Error);
} catch (IOException e) {
Error = "Error found with connection";
response.sendRedirect("SystemError.jsp?Error_resultat=" + Error);
} catch (RuntimeException e) {
Error = "Error found with entered values";
response.sendRedirect("SystemError.jsp?Error_resultat=" + Error);
} catch (Exception e) {
Error = "Serious error found!";
response.sendRedirect("SystemError.jsp?Error_resultat=" + Error);
func.addNewOperator在我的函数类中被调用:
功能:
您可以在下面看到我的函数方法中的一个小例子:
public boolean addNewOperator(String userId, String name, String ini, String cpr, String password, String role ) throws Exception {
int id = Integer.parseInt(userId);
}
因此,可以说如果它不能将其解析为整数,它应该向我的servlet抛出异常,但这是行不通的。我想将异常抛出给servlet,然后servlet应该发送一个响应以打开SystemError.jsp,并以一条错误消息作为参数。
谁能看到我是否忘记了什么?
顺序是先匹配的,然后执行get(正如JLS明确解释的那样)。
如果第一个catch匹配到异常,则执行,否则,将尝试下一个,并不断重复,直到匹配或不匹配。
因此,在捕获异常时,您总是希望始终首先捕获最具体的异常,然后再捕获最通用的异常(如RuntimeException或Exception)。
阅读更多Java捕获异常的顺序
catch (Exception e)
应该是catch
链中的最后一块。
值得阅读Oracle Java教程-异常
以这种方式尝试,不要忘记将异常记录在日志文件中。
try {
completed = func.addNewOperator(userId, name, ini, cpr, password, role);
}catch (SQLException e) {
Error = "There was a problem with database access";
} catch (IOException e) {
Error = "Error found with connection";
} catch (RuntimeException e) {
Error = "Error found with entered values";
} catch (Exception e) {
Error = "Serious error found!";
}
if(Error != null){
response.sendRedirect("SystemError.jsp?Error_resultat=" + Error);
}
NumberFormatException
是一个RuntimeException
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句