码迷,mamicode.com
首页 > 编程语言 > 详细

第四记 Java异常

时间:2019-10-20 22:51:28      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:自动   on()   rac   java   row   应用程序   位置   错误信息   vm虚拟机   

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异常

标签:自动   on()   rac   java   row   应用程序   位置   错误信息   vm虚拟机   

原文地址:https://www.cnblogs.com/xywl-bky/p/11710618.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!