JAVA-Exception异常

来源:互联网 发布:冰川网络远征ol珍宝阁 编辑:程序博客网 时间:2024/06/10 02:59

java 一共分两个阶段,编译期,运行期。
Object-Throwable
Throwable是所有异常的根类,它有两个直接的子类,一个是Error(错误)(一般指比较严重的错误出现,比如系统崩溃等,不需要过多的关注)
另外的一个直接子类 Exception(异常)。

Exception异常分为两大类:
1:RuntimeException 运行时异常,,只有在运行的时候才会检测是否会发生异常。
比较常见的运行时异常
例如:NullPointException空指针异常 ArrayIndexOutOfBoundsException 数组越界的异常 数学异常等等。
运行时异常产生的原因:和程序员的水平有关系。一般不做任何的处理。只能提高自身的技术水平避免运行时异常的出现。

2:checked Exception 检查异常 编译期异常。
在jdk 提供的API 中,很多方法都会抛出编译期异常,当使用这些方法的时候,我们需要对编译期异常进行相应的处理
处理方式有两种:1:继续往外抛出 使用throws 关键字。2:使用try catch 进行捕获处理。建议大家使用第二种方式。

常用的:
try catch finally throw throws

1:如果一段代码中没有对异常进行任何的处理,一旦发生异常。会出现什么样的结果:异常被扔给jvm处理,并且程序被中断执行,在产生异常的代码处终止。后面代码全部不执行。
2:使用try-catch 包围的代码块,如果try 中产生异常,那么从产生异常处到try代码块结束处被跳过不执行。执行catch 代码块,然后执行 catch 后的代码块。

出现异常解决方式
1:自定义处理方式。一般是面向普通用户的。
2:打印堆栈信息 e.printStackTrace();//开发阶段,帮助程序员更好的定位错误,解决错误

try:可能出现异常的代码
catch:用来捕获异常
当try代码块中的代码产生异常的时候,catch 代码块会对该异常进行捕获(产生的异常对象,必须是catch 中参数异常类型的一个实例)。

try {    result = a/b;    System.out.println("hello world");} catch (Exception e) {    e.printStackTrace();//打印堆栈信息}

finally :语法,放到catch 代码块后。
特点:不管try 或者catch 中是否产生异常,都会执行finally 中的代码。
如果说某些代码不管发生什么情况都必须保证执行,那么这些代码可以放到finally代码块中。
只有一种特殊情况,finally 不被执行,在执行finally 之前执行了System.exit(0);
finally不能单独出现。必须和try catch 代码块一起出现

throws 关键字使用方法:
在方法的参数列表后面 使用 throws 在throws 后面跟一种异常类型,或者几种异常类型,表示当前的方法在执行的时候有可能会抛出该种异常。
throw 用法:
throw 使用在方法体内,用于抛出一个异常对象。如果一个方法使用throw 关键字抛出一个异常对象。
那么该方法应该使用throws 关键字在方法的参数列表后
指明该方法可能会抛出该对象所对应的异常类型。
throw 关键字 如果抛出异常对象,那么throw 关键字总是出现在当前代码块的末尾。

throw 和throws 的区别:
1:使用位置不同:throws 使用在 方法的声明的末尾 参数列表后。 throw 在方法体内使用。
2:throw 后面跟异常对象 throws 后面跟异常的类型。
3:throw 后只能跟一个异常对象。 throws 后可以跟多个异常类型。
4:一个有s 一个没有s

原创粉丝点击