第四记 Java异常
Posted xywl-bky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四记 Java异常相关的知识,希望对你有一定的参考价值。
Java异常结构图
Java所有异常都是从Throwable继承而来,Throwable有两个子类,Error与Exception。
Error是错误,对于所有的编译时期的错误以及系统错误都是通过Error抛出的。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(Virtual MachineError)、类定义错误(NoClassDefFoundError)等。这些错误是不可查的,因为它们在应用程序的控制和处理能力之 外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。在 Java中,错误通过Error的子类描述。
Exception是另外一个非常重要的异常子类。它规定的异常是程序本身可以处理的异常。异常和错误的区别是,异常是可以被处理的,而错误是没法处理的。
异常的处理
1.通过try...catch语句处理
try { // 有可能出现异常的的代码放在try块内,一旦出错,保证程序正常执行 }catch(Exception e){ //catch一旦程序错误,它就走,可以用来捕获错误信息,可以完成try块内没有完成的代码操作 e.printStackTrace()//只是在控制台打印错误信息,当try块内遇到了异常jvm会自动调用且根据当前异常信息产生一个异常对象(如: new ArithmeticException )将他赋给 Exception e 这时候就可以调用他的方法打印输出异常信息 }finally{ //finally是try...catch块的一个结构,可选加与不加,表示总执行,一般用来释放资源, }
2.另外,也可以在具体位置不处理,直接通过throws/throw在方法上抛出,谁调用这个方法谁处理,main方法抛出的异常交由JVM虚拟机处理
import java.io.*; public class className { public void deposit(double amount) throws RemoteException { throw new RemoteException(); }
常见异常列举
Error 程序处理不了,内部因素影响
java.lang .StackOverflowError 栈溢出,电脑内存不够
RuntimeException 运行时异常
1.数组下标越界(常见于数组)
java.lang .ArrayIndexOutOfBoundsException
2.索引下标越界(常见于集合)
java.lang .IndexOutOfBoundsException
3.空指针异常(空引用)常见于引用名没有指向具体方法,无法调用方法
java.lang .NullPointerException
4.算数异常 如一个数除以0
java.lang.ArithmeticException
5.类型转换异常 常见于类型转换
java.lang.NumberFormatException
6.ClassNotFoundException 看jar包,可能忘记拷贝了
7.com.microsoft.sqlserver.jdbc.SQLServerException jdbc异常
以上是关于第四记 Java异常的主要内容,如果未能解决你的问题,请参考以下文章
“全栈2019”Java异常第四章:catch代码块作用域详解
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段