处理异常的方式:
1.
try、catch、finally配合使用,三者不能单独使用,
try-catch-finally或者
try-catch或者
try-finally方式
2.
throws关键字,
声明异常,在方法名和throws后加上抛出的异常,基本格式:
方法返回值类型 方法名(参数列表) throws 异常类1,异常类2,。。。
通过这种方式声明后,在该类中不必catch异常,不必处理异常,将异常向上传递,而是等到调用该方法的时候catch,即使用该方法的时候需要用try-catch包围该方法用来捕获异常。
父类中的重写方法可以指定所有的已检查异常或者指定已检查异常的一部分,这些已检查异常时重载方法在其throws子句中声明的。子类在重写该方法是不需要指定重写throws子句的任何已检查异常。
3.
throw 异常对象名 或者 throw new 异常类名()
当一个方法发生异常可以通过throw关键子抛出异常,把异常抛给它的上一级调用者,抛出的可以是异常引用,也可以是异常对象
一条throw语句一旦被执行,程序立即转入相应的异常处理程序段,他的后面的语句就不执行了(类似return语句),而且他所在的方法也不在返回有意义的值。在一个方法中,throw语句可以有多条,但每次最多只能执行一条。
当throw一个异常但是没有catch时,异常后的内容不会被执行,最后将会将异常转成系统处理例如:
public class Throw {
public static void throw_do(){
throw new ArithmeticException();
}
public static void main(String[] args) {
try {
System.out.println("only try ,no catch!");
throw_do();
System.out.println("after throw_do then print");
} finally{
System.out.println("finally excuting!");
}
}
}
输出结果:
only try ,no catch!
finally excuting!
Exception in thread "main" java.lang.ArithmeticException
但是如果将throw的异常用catch捕获后,异常将会被处理,
将上面的代码修改
try {
throw_do();
} catch (ArithmeticException e) {
// TODO: handle exception
System.out.println("catch exception:"+e);
}
输出结果:only try ,no catch!
catch exception:java.lang.ArithmeticException
after throw_do then print
finally excuting!
分享到:
相关推荐
一个`__try`块包含了可能会抛出异常的代码,而`__except`块则包含处理异常的代码。值得注意的是,`__try`块后面必须跟一个`__except`或`__finally`块,但不能同时存在两者。然而,`__try`-`__except`块可以嵌套在`__...
其中,`handler_type`是处理方式,`condition_value`是异常类型,可以是`SQLSTATE`、`condition_name`、`SQLWARNING`、`NOTFOUND`、`SQLEXCEPTION`或`mysql_error_code`。`sp_statement`是当异常匹配时要执行的语句...
4.同样类型异常有不同的处理方式,使最终的处理变得复杂。 5.接口抛出异常,破坏封装,打破了接口与实现之间的清晰界限。 6.异常处理代码散落在,修改起来时非常麻烦。无法对某些异常进行统一处理和修改。
本主题将深入探讨Java Web开发中的异常处理方式以及Aspect-Oriented Programming(面向切面编程,简称AOP)技术,这两种技术在构建健壮和可维护的应用程序中起着核心作用。 首先,让我们了解Java Web开发中的异常...
Java异常处理机制是一种优雅的错误处理方式,它允许开发者在程序中集中处理可能出现的问题...通过合理地使用`try-catch-finally`,可以有效地控制程序流程,确保程序在遇到问题时能够优雅地处理异常,而不是突然崩溃。
本篇文章将详细探讨Spring MVC处理异常的三种主要方法:SimpleMappingExceptionResolver、自定义HandlerExceptionResolver以及@ExceptionHandler注解。 1. SimpleMappingExceptionResolver Spring MVC提供了内置的...
为了解决这个问题,开发者有时会借助setjmp/longjmp函数对异常进行模拟,但这仍然是一种非标准的、不推荐的异常处理方式。 接下来是C++的异常处理。C++引入了标准的异常处理机制,通过try、catch和throw关键字实现...
Spring Cloud Gateway默认使用`DefaultErrorWebExceptionHandler`类来处理异常,该类继承自`AbstractErrorWebExceptionHandler`,并在内部使用了`ErrorAttributes`和`ResourceProperties`等组件来收集错误信息。...
在方法重写中,子类重写父类方法时,如果父类方法声明抛出一个检查异常(编译时异常),那么子类重写的方法要么也声明抛出相同的异常,要么不抛出异常,但可以通过`try-catch`块来处理异常。 (1)说明:子类不能抛...
在易语言中,我们可以通过设置异常处理来确保程序在遇到错误时不会立即崩溃,而是能够优雅地处理异常并继续执行或提供反馈。 1. **设置异常处理**:在易语言中,我们可以使用特定的命令来设定程序在发生异常时的...
在这个过程中,Java使用了try-catch语句块来捕获和处理异常。通过在一个或多个catch语句块中处理所有可能抛出的异常,可以实现全局异常统一处理。 例如,在Spring框架中,使用@ControllerAdvice和@ExceptionHandler...
2. **策略定义与维护**:异常处理策略可以在高层定义,由系统管理员或开发人员决定如何处理异常,通过配置而非代码进行修改。 3. **内置异常处理功能**:包括记录异常信息、替换异常以隐藏敏感信息、包装异常以添加...
Windows的异常处理流程确保了系统在遇到错误时能够尽可能地保持稳定,提供了调试和错误报告的手段,同时允许应用程序以安全的方式处理异常情况。通过理解这些流程和机制,开发者可以更好地诊断和解决软件运行时的...
Java提供了五个关键字用于处理异常:try、catch、finally、throw和throws。 1. **try**:try块用来包含可能抛出异常的代码。如果在try块中抛出了异常,程序会立即跳转到与之匹配的catch块。 2. **catch**:catch块...
这些表项记录了处理异常的具体细节,包括异常的类型、处理代码的起始位置以及跳转的目标位置等。 具体而言,一个异常处理表项可能包含以下字段: - **start_pc**:异常处理范围的起始字节码索引。 - **end_pc**:...
异常处理的主要目标是防止程序因错误而突然终止,而是提供一种方式来捕获并处理这些错误,使程序能够继续执行或者至少以一种可控的方式结束。 异常处理主要涉及两个关键部分:捕获异常(catching exceptions)和...
异常处理机制是指系统在出现异常情况时,能够自动地检测、截获和处理异常的机制。异常处理机制在 VxWorks 操作系统中扮演着关键角色,因为 VxWorks 操作系统广泛应用于嵌入式实时系统中,而这些系统很难进行人工干预...
“C与C++中的异常处理.pdf”可能会详细比较这两种语言的异常处理方式,并可能涵盖如何在C++中调用C库时处理异常,以及如何在混合C/C++项目中协调异常处理策略。这篇文章可能会讨论异常安全编程实践,包括异常不可见...