美文网首页
Java基础_异常

Java基础_异常

作者: dashingqi | 来源:发表于2020-03-14 00:47 被阅读0次

本文主要从如下几点学习Java中的异常

  • 异常的分类
  • 异常分类结构图
  • 异常处理的方法

异常的分类

Java库中本身内建了异常,这些类通常以Throwable为顶层类

Throwable又派生成Error和Exception

Error(错误)

定义
  • Error类以及它的子类的实例,代表了JVM本身的错误。这个错误不能被我们通过代码处理。

  • 典型的就是 OutOfMemoryError

Exception

定义
  • Exception以及它的子类,代表程序运行时出现的各种不期望发生的。我们可以使用Java异常处理机制进行处理。

非检查异常

  • Error和RuntimeException以及它们的子类属于非检查异常;在编译的时候不会提示和发现任何错误,不要求在程序中处理这些异常。
  • 对于这类异常通常都是我们写的代码有问题。
  • 典型的 NullPointException、ArrayIndexOutOfBoundsException、ClassCastException。

检查异常

  • 除了Error和RunTimeException之外的其他异常。要求我们要提前对这类异常做预处理工作。
  • 这类异常一般是由程序的运行环境导致的。
  • 典型的就是:IOException、FileNotFoundException。

异常分类结构图

Java中的异常分类.png

异常处理方法

try ... catch...finally语句块

try{
  // 包含着可能发生遗产的代码
  // 当try中的代码执行完毕,如果没有发生异常就会去执行finally中的代码(如果有的话)以及finally之后的代码
  // 当发生异常的时候,就会去匹配catch块
}catch(Exception exception){
  // catch块可以有多个,在Java7的时候可以在一个catch中声明多个异常
  // 如果try块中发生异常并且在catch中没有匹配到,那么先去执行finally块中的代码,然后再去caller中匹配异常处理器。
  // 如果try块中没有发生异常,catch块就直接被忽略。
  
}finally{
  // finally块通常是可选的不是必须的
  // 无论异常是否发生,以及异常是够被匹配处理,finally快都会被执行
  // finally块中通常做的是一些比如流的关闭。连接关闭的操作。
  //其实只有一种方法是可以让finally块不被处理的,就是使用System.exit()方法。
}

throws函数声明

//1. 如果一个方法中的代码抛出检查异常,方法本身没有定义处理的代码,那么就得必须保证方法使用 throws关键字声明这些抛出的异常,否则编译不能发通过。
//2. 方法本身不知怎么处理这个异常,让调用者自己处理更好。

public void method() throws IOException {
  
}

throw异常抛出语句

// 1. 我们可以通过throw语句手动显示的抛出一个异常
// 2. throw语句抛出的异常必须是在方法内的。

public void method(int i){
  if(i == 0){
    throw new IllegalArgumentException("i == 0")
  }
  
}

一个不容易被理解的事实

  • 在try块中即便有return、break、continue等改变执行流的语句,finally块也会被执行。

相关文章

  • Java基础之异常

    Java基础之异常 目录 异常简单介绍 ThrowableErrorException 异常分类 如何处理异常异常...

  • 在Alibaba广受喜爱的“Java突击宝典”简直太牛了

    0-1年:夯实基础 1.Java基础(Java异常分类及处理+Java反射+Java注解+Java内部类+Java...

  • JAVA高级(2)—— 异常机制

    一、基础 1、JAVA异常 1.1、Runtime异常 1)非Checked异常,所有RuntimeExcepti...

  • Java基础之异常处理

    Java基础之异常处理 在Java程序中,异常分为编译异常以及运行时异常 编译异常:程序在编译期间就出现的异常,必...

  • java基础知识精华总结(二)

    1.异常类 JAVA中除了RunTimeException 类,其他异常均须捕获或抛出。 以上就是 java 基础...

  • Java 基础:异常

    目录:一、 异常继承体系二、 发生异常到时候,程序的执行特征:三、 异常与错误的区别四、 抛出异常 throw五、...

  • Java基础——异常

    声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互...

  • java基础--异常

    1.处理异常 try-catch以及try-catch-finally捕获异常 try{ //一些会抛出异常的...

  • java基础——异常

    父类java.lang.Throwable(implements java.io.Serializable) ...

  • Java基础:异常

    做一个小的笔记,有疑问时方便回顾。 如同大多数现代编程语言一样,Java语言有着健壮的错误处理机制,将控制权从出错...

网友评论

      本文标题:Java基础_异常

      本文链接:https://www.haomeiwen.com/subject/flqpshtx.html