第四记 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异常的主要内容,如果未能解决你的问题,请参考以下文章

YARN的简单了解--大数据纪录片第四记

“全栈2019”Java异常第四章:catch代码块作用域详解

java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段

java 反射代码片段

混合编程jni 第四篇之引用和异常

片段中的 EditText 上的空指针异常 [重复]