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 }
友情链接
作者:
huhx
出处: www.cnblogs.com/huhx
格言:你尽力了,才有资格说自己的运气不好。
版权:本文版权归作者huhx和博客园共有,欢迎转载。未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
出处: www.cnblogs.com/huhx
格言:你尽力了,才有资格说自己的运气不好。
版权:本文版权归作者huhx和博客园共有,欢迎转载。未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。