全屏浏览
缩小浏览
回到页首

java基础---->Java中异常的使用(一)

  今天我们大致学习一下java中关于异常的知识。原来忍住一段时间不联系一个人,真的就不想联系了。

 

java异常的使用

一、java异常的一些说明

1、Throwable 类是Java 语言中所有错误或异常的超类(这就是一切皆可抛的东西)。它有两个子类:Error和Exception。
2、Exception:它指出了合理的应用程序想要捕获的条件。Exception又分为两类:一种是CheckedException,一种是UncheckedException。这两种Exception的区别主要是CheckedException需要用try...catch...显示的捕获,而UncheckedException不需要捕获。通常UncheckedException又叫做RuntimeException。

RuntimeException表示出现了某种编程错误或者其他不可修复的错误,因为它们通常不会被捕获。它们不会在调用栈中逐层传递,而是默认地在控制台中输出栈追踪信息,并终止线程。

 

 二、通过代码来了解异常

  • IllegalArgumentException是UncheckedException的异常。
public static int divide(int num1, int num2) {
    if (num2 == 0) {
        throw new IllegalArgumentException("除数不能为0"); // 这种异常是不会try...catch的
    }
    System.out.println("hello world");
    return num1 / num2;
}

运行的效果如下:

Exception in thread "main" java.lang.IllegalArgumentException: 除数不能为0
    at com.chenhui.huhx.ExceptionTest.divide(ExceptionTest.java:11)
    at com.chenhui.huhx.ExceptionTest.main(ExceptionTest.java:37)
  • IndexOutOfBoundsException是UncheckedException的异常。
public static void arraysOutbounds() {
    int[] arrays = new int[]{2, 3, 5};
    try {
        System.out.println(arrays[4]);
    } catch (IndexOutOfBoundsException e) {
        System.out.println("数组越界错误");
    }
    System.out.println("数组异常之后的执行");
}

运行的效果如下:

数组越界错误
数组异常之后的执行
  • FileNotFoundException是checkedException的异常,这类异常必需try...catch或者throw。
public static void checkException() {
    try {
        throw new FileNotFoundException("文件找不到");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    System.out.println("文件异常之后的执行");
}

运行的效果如下:

java.io.FileNotFoundException: 文件找不到
    at com.chenhui.huhx.ExceptionTest.checkException(ExceptionTest.java:29)
    at com.chenhui.huhx.ExceptionTest.main(ExceptionTest.java:39)
文件异常之后的执行

整个的测试文件如下:

 1 package com.chenhui.huhx;
 2 
 3 import java.io.FileNotFoundException;
 4 
 5 /**
 6  * Created by huhx on 2017-04-27.
 7  */
 8 public class ExceptionTest {
 9     public static int divide(int num1, int num2) {
10         if (num2 == 0) {
11             throw new IllegalArgumentException("除数不能为0"); // 这种异常是不会try...catch的
12         }
13         System.out.println("hello world");
14         return num1 / num2;
15     }
16 
17     public static void arraysOutbounds() {
18         int[] arrays = new int[]{2, 3, 5};
19         try {
20             System.out.println(arrays[4]);
21         } catch (IndexOutOfBoundsException e) {
22             System.out.println("数组越界错误");
23         }
24         System.out.println("数组异常之后的执行");
25     }
26 
27     public static void checkException() {
28         try {
29             throw new FileNotFoundException("文件找不到");
30         } catch (FileNotFoundException e) {
31             e.printStackTrace();
32         }
33         System.out.println("文件异常之后的执行");
34     }
35 
36     public static void main(String[] args) {
37 //        divide(3, 0);
38 //        arraysOutbounds();
39         checkException();
40     }
41 }
异常测试类

 

友情链接

 

posted @ 2017-05-11 18:51  huhx  阅读(296)  评论(0编辑  收藏  举报