您的位置:首页 > 编程语言 > Java开发

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

2017-05-11 18:51 609 查看
  今天我们大致学习一下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)
文件异常之后的执行


整个的测试文件如下:

 package com.chenhui.huhx;

import java.io.FileNotFoundException;

/**
* Created by huhx on 2017-04-27.
*/
public class ExceptionTest {
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; }

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("数组异常之后的执行"); }

public static void checkException() { try { throw new FileNotFoundException("文件找不到"); } catch (FileNotFoundException e) { e.printStackTrace(); } System.out.println("文件异常之后的执行"); }

public static void main(String[] args) {
// divide(3, 0);
// arraysOutbounds();
checkException();
}
}


异常测试类

友情链接

intellj idea2017的破解方法:http://quanzhan.applemei.com/webStack/T1RnMw==
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: