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 ...
随机推荐
- 详解C#泛型(二) 获取C#中方法的执行时间及其代码注入 详解C#泛型(一) 详解C#委托和事件(二) 详解C#特性和反射(四) 记一次.net core调用SOAP接口遇到的问题 C# WebRequest.Create 锚点“#”字符问题 根据内容来产生一个二维码
详解C#泛型(二) 一.自定义泛型方法(Generic Method),将类型参数用作参数列表或返回值的类型: void MyFunc<T>() //声明具有一个类型参数的泛型方法 { ...
- static 成员变量、static 成员函数、类/对象的大小
一.static 成员变量 对于特定类型的全体对象而言,有时候可能需要访问一个全局的变量.比如说统计某种类型对象已创建的数量. 如果我们用全局变量会破坏数据的封装,一般的用户代码都可以修改这个全局变量 ...
- unity, editorWindow lose data when enter play mode
我写了个editorWindow,其中有个成员变量m_x,在创建editorWindow的时候为m_x赋的值,而在editorWindow的OnGUI里把m_x显示出来. 当我开着这个editorWi ...
- //%f表示以十进制格式化输出浮点数 %.2f
//%f表示以十进制格式化输出浮点数 String s1 ="评分: %.1f"; String s2 = String.format(s1, 8.0); System.out.p ...
- 进程控制函数(3)-getsid()和setsid()获取当前会话和建立新会话
pid_t setsid(void) 1.调用进程不能是进程组组长,该进程变成新会话首进程(session header) 2.该进程成为一个新进程组的组长进程. 3.需有root权限(ubuntu不 ...
- 每日英语:Investing the Downward Dog Way? Adviser Suggests Deep Breaths
When the Dow Jones Industrial Average hit a new record this past March, Brent Kessel awoke at 3:30 a ...
- 根据返回值动态加载select
// 路由 if (return_routeChoice != null && return_routeChoice != "") { for (var i = 0 ...
- spoj687(后缀数组)
http://www.spoj.com/problems/REPEATS/ 题意:给一串字符,需要你求这一串字符中有连续重复的字符的重复次数....... 思路:这是和poj3693一种类型的题目.. ...
- mysql 从一个表中查询插入另一个表
insert into dnt_userfields (uid,realname ) select uid,nickname from discuz.dnt_users where uid>72 ...
- Java compiler level does not match the version of the installed Java project facet 的解决方案
今天将MyEclipse升级到 9.1 后,打开原来的工作空间,原来所有的项目都前面都显示了一个小叉叉,代码中却没有任何错误.于从 problems 视图中查看错误信息,错误信息的"D ...