20.java当中的异常
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20.java当中的异常相关的知识,希望对你有一定的参考价值。
- 什么是异常
- 异常:中断了正常指令流的事件
- 异常的分类
- uncheck exception
classTest{
publicstaticvoid main(String args[]){
System.out.println(1);
//uncheck exception
int i =1/0;
System.out.println(2);
}
}
结果:
D:\\work\\src>javac Test.java
D:\\work\\src>java Test
1
Exception in thread "main" java.lang.ArithmeticException: / by zero
at Test.main(Test.java:5)
- check exception
- 包括exception这个类以及exception除了runtimeException之外的子类
classTestCheck{
publicstaticvoid main(String args []){
//check exception
Thread.sleep(1000);
}
}
结果:
D:\\work\\src>javac TestCheck.java
TestCheck.java:4: 错误: 未报告的异常错误InterruptedException; 必须对其进行捕获或声明以便抛出
Thread.sleep(1000);
- try...catch...finally结构的使用方法
- 如果try里面的代码出现异常就执行catch中的代码,不出异常就不执行catch中的代码,而finally中的代码都会执行,称为异常的窗口
- 对异常进行捕捉
classTest{
publicstaticvoid main(String args[]){
System.out.println(1);
//uncheck exception
try{
//打开文件
System.out.println(2);
int i =1/0;
System.out.println(3);
}
catch(Exception e){
e.printStackTrace();
System.out.println(4);
}
finally{
System.out.println("finally");
//关闭文件
}
System.out.println(5);
}
}
结果:
D:\\work\\src>javac Test.java
D:\\work\\src>java Test
1
2
java.lang.ArithmeticException: / by zero
at Test.main(Test.java:8)
4
finally
5
- throw的作用
- 如果一个异常java虚拟机无法判断,可以在出现异常的时候,生成一个异常对象,然后用throw+异常对象,抛出异常
classUser{
privateint age;
publicvoid setAge(int age){
if(age <0){
RuntimeException e =newRuntimeException();
throw e;
}
this.age = age;
}
}
classTest{
publicstaticvoid main(String args []){
User user =newUser();
user.setAge(-20);
}
}
结果:
D:\\work\\src>javac *.java
D:\\work\\src>java Test
Exception in thread "main" java.lang.RuntimeException
at User.setAge(User.java:6)
at Test.main(Test.java:4)
- throws的作用
- 声明一个函数有可能会出现异常
- 函数不会处理,而在调用这个函数的地方,对这个异常进行处理
classUser{
privateint age;
publicvoid setAge(int age) throws Exception{
if(age <0){
RuntimeException e =newRuntimeException("年龄不能为负数");
throw e;
}
this.age = age;
}
}
classTest{
publicstaticvoid main(String args []){
User user =newUser();
try{
user.setAge(-20);
}
catch(Exception e){
System.out.println(e);
}
}
}
结果:
D:\\work\\src>javac *.java
D:\\work\\src>java Test
java.lang.RuntimeException: 年龄不能为负数
以上是关于20.java当中的异常的主要内容,如果未能解决你的问题,请参考以下文章
使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段
springcloud报错-------关于 hystrix 的异常 FallbackDefinitionException:fallback method wasn't found(代码片段
C语言必会面试题(3耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)(代码片段
mvn命令异常:An error has occurred in Javadoc report generation: Unable to find javadoc command异常已解决(代码片段