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

java异常的使用

一、java异常的一些说明

、Throwable 类是Java 语言中所有错误或异常的超类(这就是一切皆可抛的东西)。它有两个子类:Error和Exception。
、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();
}
}

异常测试类

友情链接

java基础---->Java中异常的使用(一)的更多相关文章

  1. Java基础-Java中23种设计模式之常用的设计模式

    Java基础-Java中23种设计模式之常用的设计模式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.设计模式分类 设计模式是针对特定场景给出的专家级的解决方案.总的来说设 ...

  2. Java基础(中)

    面向对象基础 面向对象和面向过程的区别 两者的主要区别在于解决问题的方式不同: 面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题. 面向对象会先抽象出对象,然后用对象执行方法的方式 ...

  3. java基础---->java中正则表达式二

    跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...

  4. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

  5. Java基础-Java中的堆内存和离堆内存机制

    Java基础-Java中的堆内存和离堆内存机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  6. Java基础-Java中的内存分配与回收机制

    Java基础-Java中的内存分配与回收机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一. 二.

  7. Java基础-Java中的并法库之重入读写锁(ReentrantReadWriteLock)

    Java基础-Java中的并法库之重入读写锁(ReentrantReadWriteLock) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在学习Java的之前,你可能已经听说过读 ...

  8. Java基础-Java中的并法库之线程池技术

    Java基础-Java中的并法库之线程池技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是线程池技术 二.

  9. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

  10. Java基础__Java中自定义集合类

    Java基础__Java中集合类 传送门 自定义MyArrayList集合实现:增加数据.取数据.查看集合中数据个数方法 package com.Gary; public class MyArrayL ...

随机推荐

  1. C++:SQLServer字段赋值

    大前提: 1. 初始化环境 2. 创建连接实例 3. 创建记录集实例 注意点: 1.AddNews失败问题: (1)是否将CursorTypeEnum cursorType, LockTypeEnum ...

  2. 【Unity】开发WebGL内存概念具体解释和遇到的问题

    自增加unity WebGL平台以来.Unity的开发团队就一直致力于优化WebGL的内存消耗. 我们已经在Unity使用手冊上有对于WebGL内存管理的详尽分析,甚至在Unite Europe 20 ...

  3. Spring Cloud(九):分布式配置中心和消息总线

    我们在Spring Cloud(七):使用SVN存储分布式配置中心文件和实现refresh中讲到,如果需要客户端获取到最新的配置信息需要执行refresh,我们可以利用webhook的机制每次提交代码 ...

  4. REST 和 SOAP、RPC 有何区别?

    第一个问题:什么是RESTful? REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的.有兴趣可以看看这里论文`,谁是Fielding?点击前面名字了解. 那RE ...

  5. ubuntu中rc.local无效

    在ubuntu中写了一点iptables规则,但是,竟然iptables竟然无效,经过多方查找问题...眼泪... 终于发现是rc.local竟然没有运行,我晕.仔细检查iptables脚本n遍,没有 ...

  6. dependent-name ‘xxx::yyy’ is parsed as a non-type, but instantiation yields a type

    简言之,就是说你该用typename的地方没用typename,如以下代码 template<class Cont> void frontInsertion(Cont& ci) { ...

  7. floyd算法&迪杰斯特拉算法

    ; k<=n; k++) ; i<=n; i++) ; j<=n; j++) { gra[i][j]=min(gra[i][j],gra[i][k]+gra[k][j]); } vo ...

  8. nodeJs should+mocha+istanbul 测试 遇到的坑

    .istanbul 和 mocha 结合进行nodejs测试的时候最后执行 istanbul cover _mocha test.sqrt.js的时候报错 如图: 用 ../node_modules/ ...

  9. excel鼠标拖选慢shift选择快的问题

    今天遇到个惊天大坑,关于excel的,最近,一直在调查这个东西,刚开始真的是毫无头绪,反正现在就是excel的值的copy会偶尔慢,慢的情况也是不明白,就是稀里糊涂的调查. 刚开始连100%再现这个b ...

  10. web应用中幂等性的学习

    qnmd bd:待会劳资就去买个vpn. 在平常的工作中经常听到也用到幂等,却没有及时学习总结这个知识点,现在到时候了. 幂等性最初是一个数学上的概念:在某二元运算下,幂等元素是指被自己重复运算(或对 ...