Java-异常

异常,简单点来说,就是程序由于某些问题而不能正常的运行下去。

异常Exception,与错误Error都有同一个父类Throwable(可抛出)。

  • java.lang.Object
  • java.lang.Throwable
    • java.lang.Exception
    • java.lang.Error
  • Exception(异常)是应用程序中可能的可预测、可恢复问题。一般大多数异常表示中度到轻度的问题。异常一般是在特定环境下产生的,通常出现在代码的特定方法和操作中。在 EchoInput 类中,当试图调用 readLine 方法时,可能出现 IOException 异常。
    Exception 类有一个重要的子类 RuntimeException。RuntimeException 类及其子类表示“JVM 常用操作”引发的错误。例如,若试图使用空值对象引用、除数为零或数组越界,则分别引发运行时异常(NullPointerException、ArithmeticException)和 ArrayIndexOutOfBoundException。
  • Error(错误)表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。

异常的使用

代码在执行的过程中,比较理想的状态是没有问题。但是这很难达到,因为你无法保证你说需要的东西就一定能拿到。那出现这种问题的时候,该如何处理?抛出异常,让调用这个api的对象处理。

if(出现异常情况){
  //抛出异常
  throw new Exception();
}

既然会抛出异常,那就得处理异常。

//对可能出现异常的方法进行try-catch包围,进行异常捕获
try{
  api();
} catch(Exception e){
  //捕获到异常,进行处理
  ...
}finally{
  //无论是否捕获到异常,都会处理
  ...
}

万一当前情况无法处理这个异常,或不想处理,你可以这样做。

public void run()
  //将异常抛出,不做处理
  throws  Exception {
  //调用可能会出现异常的方法
  ...
}

Exception是所有异常的父类,抛出Exception是比较笼统的处理,要想针对性的处理,就得使用Exception的子类(太多了,可以自行查看jdk文档)了。

还有种就是自定义异常了,可以继承Throwable或Throwable的子类。当然,增加了自定义的异常,就需要去维护,看需求再考虑是否增加了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 通俗编程——白话JAVA异常机制 - 代码之道,编程之法 - 博客频道 - CSDN.NEThttp://blog...
    葡萄喃喃呓语阅读 3,197评论 0 25
  • Java异常 异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行...
    java部落阅读 3,141评论 1 13
  • Java异常类型 所有异常类型都是Throwable的子类,Throwable把异常分成两个不同分支的子类Erro...
    予别她阅读 952评论 0 2
  • 一、数组方法汇总 shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined var ...
    快抓住那个胖子阅读 302评论 0 0
  • 哇卡卡!开开心心收拾好行李,打电话给老爸,老老小小的向着美丽的荔波出发啦(我想了好久哟!) 有阵子没见老头...
    米丫爱妖妖阅读 189评论 0 0