zoukankan      html  css  js  c++  java
  • 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 }
    异常测试类

    友情链接

  • 相关阅读:
    getWritableDatabase()与getReadableDatabase()方法
    使用drawBitmapMesh扭曲图像
    移动游戏背景
    使用Matrix控制图片和组件的变化
    使用Matrix控制图像或组件变换的步骤
    1105: 零起点学算法12——求2个日期之间的天数
    1104: 零起点学算法11——求梯形面积
    1103: 零起点学算法10——求圆柱体的表面积
    1102: 零起点学算法09——继续练习简单的输入和计算(a-b)
    1101: 零起点学算法08——简单的输入和计算(a+b)
  • 原文地址:https://www.cnblogs.com/huhx/p/baseusejavaexception1.html
Copyright © 2011-2022 走看看