1.在try{}catch(){}中应该写什么样子的代码。
会抛出异常的代码,也就是chceked异常。
2. 什么的样子的代码会使用try{}catch(){}。
1)用户操作时会出现的异常情况是无法穷举完的。
2)希望把会出现错误代码和业务代码分开的情况。
1.throwable为父类: 在它之下分为 error和exception子类
2. error:错误不是异常,而是脱离程序员控制的问题。它们在编译期也检查不到的。例如,当栈溢出时,错误就产生了。
3.在exception 之下又分为分为checked异常和runtime异常。
检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
1) checked异常:检查性异常。
这一类异常抛出时,我们必须去捕获它,如 SQLException、XMLStreamException 等异常。至于说如何处理,根据具体的业务逻辑来编写处理的代码了。
2) runtime异常:运行时异常
当出现使用了指向空的引用时,系统会自动帮你抛出,所以我们不用手动抛出所有 RuntimeException 类型(它的子类)的异常
4.异常处理的3种方式
1) try{
//异常代码
}catch(){
// 打印异常代码信息
} finally{
//这里最后都会执行的代码
}
2)throw/throws
public void 方法名 throws exception{
throw new exception("异常抛出信息")
}
3)自定义异常 :通过继承异常类,并且自己写异常方法。
实现的部分代码
package com.example.demo.exception;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.IOException;
/**
* @author hanqiang
* @Classname ExceptionTest
* @Date 2021/5/11 20:53
* @Description: 异常类
*/
@SpringBootTest
public class ExceptionTest {
@Test
void context() throws Exception,IOException{
boolean flag=true;
if(flag==false){
throw new Exception("楚王展示");
}else{
throw new IOException("这是一个io流的错误");
}
}
@Test
void cont(){
try{
int a=10/0;
System.out.println("数据是"+a);
}catch(Exception e){
e.printStackTrace();;
}finally{
System.out.println("这是finally的不变的");
}
}
}
以上如有错误,请指正,谢谢。