java基础---->Java中异常的使用(一)
今天我们大致学习一下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中异常的使用(一)的更多相关文章
- Java基础-Java中23种设计模式之常用的设计模式
Java基础-Java中23种设计模式之常用的设计模式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.设计模式分类 设计模式是针对特定场景给出的专家级的解决方案.总的来说设 ...
- Java基础(中)
面向对象基础 面向对象和面向过程的区别 两者的主要区别在于解决问题的方式不同: 面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题. 面向对象会先抽象出对象,然后用对象执行方法的方式 ...
- java基础---->java中正则表达式二
跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
- Java基础-Java中的堆内存和离堆内存机制
Java基础-Java中的堆内存和离堆内存机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Java基础-Java中的内存分配与回收机制
Java基础-Java中的内存分配与回收机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一. 二.
- Java基础-Java中的并法库之重入读写锁(ReentrantReadWriteLock)
Java基础-Java中的并法库之重入读写锁(ReentrantReadWriteLock) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在学习Java的之前,你可能已经听说过读 ...
- Java基础-Java中的并法库之线程池技术
Java基础-Java中的并法库之线程池技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是线程池技术 二.
- Java基础-JAVA中常见的数据结构介绍
Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...
- Java基础__Java中自定义集合类
Java基础__Java中集合类 传送门 自定义MyArrayList集合实现:增加数据.取数据.查看集合中数据个数方法 package com.Gary; public class MyArrayL ...
随机推荐
- springboot web 服务器选择
Spring Boot 揭秘与实战(五) 服务器篇 - 其他内嵌服务器 拓展链接 http://www.jianshu.com/p/9710585258fb 发表于 2017-01-03 | Spri ...
- MySQL-Transfer2.3发布
Transfer 2.3发布,下载地址 此版本除了升级based版本外 *优化了无索引表的同步性能 *优化了slave模式下超大事务内存消耗问题 *Transfer模式相关的功能改动较多 *修复tra ...
- atitit.产品console 日志的aticonsole 方案处理总结
atitit.产品console 日志的aticonsole 方案处理总结 1. 主要原理流程 1 2. 调用代码 1 3. 内部主要实现 1 3.1. 放入消息 1 3.2. 读取消息 2 默认可以 ...
- linux 流量控制全攻略(TC)
TC很是强大啊,很多所谓的硬件路由器,都是基于这个做的. TC介绍 在linux中,TC有二种控制方法CBQ和HTB.HTB是设计用来替换CBQ的.它是一个层次式的过滤框架.TC包括三个基本的构成块: ...
- svn add xxx.txt 提示A (bin) xxx.txt
[root@NGINX-APACHE-SVN iptables]# svn ci -m "add iptables.txt" Adding (bin) iptables/iptab ...
- IE6支持兼容min-width、max-width CSS样式属性
IE6支持兼容min-width.max-width CSS样式属性 让IE6支持max-width.IE6支持min-width样式 我们在写CSS的时候,常常会遇到让一个图片或一个布局不能超出设定 ...
- 用wget做站点镜像
用wget做站点镜像 -- :: 分类: LINUX # wget -r -p -np -k http://xxx.edu.cn -r 表示递归下载,会下载所有的链接,不过要注意的是,不要单独使用这个 ...
- 使用Cookie报错Control character in cookie value, consider BASE64 encoding your value
参考资料: http://www.blogjava.net/persister/archive/2009/10/02/297103.html http://blog.csdn.net/xiaozhen ...
- FreeRTOS 定时器组
以下转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 FreeRTOS 支持的定时器组,或者叫软件定时器,又或者叫用户定时器均可.软件定时器的功 ...
- vim 笔记
1.替换 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :%s/vivian/sky/(等同于 : ...