版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
JAVA异常处理:try-catch-finally和throws
异常体系结构
java.lang.Throwable
(1) java.lang.Error:一般不编写针对性的代码进行处理
(2)java.lang.Exception:可以进行异常处理
①编译时异常(checked)
②运行时异常(unchecked \ RuntimeException)
异常的处理:抓抛异常
(过程一:“抛”)关于异常对象的产生:①系统自动生成的异常对象②手动生成一个异常对象,并抛出(throw)
常见的几种异常类型:
//**************以下是运行时异常*********
//ArithmeticException(算术运算异常)
@Test
public void test6() {
int a = 5;
int b = 0;
System.out.println(a/b);
}
//InputMismatchException(输入不匹配异常)
@Test
public void test5() {
Scanner scan = new Scanner(System.in);
int number1 = scan.nextInt();
System.out.println(number1);
scan.close();
}
//NumberFormatException(数值类型异常)
@Test
public void test4() {
String str = "abc";
int number = Integer.parseInt(str);
System.out.println(number);
}
//ClassCastExcepttion(类型转换异常)
@Test
public void test3() {
Object obj = new Date();
String str = (String)obj;
}
//ArrayIndexOutOfBoundsException(数组角标越界)
@Test
public void test2() {
// int[] arr = new int[9];
// System.out.println(arr[9]);
//StringIndexOutOfBoundsException
String str = "abc";
System.out.println(str.charAt(3));
}
//NullpointerException(空指针异常)
@Test
public void test1(){
// int[] arr = new int[3];
// System.out.println(arr[3]);
String str = "abc";
str = null;
System.out.println(str.charAt(0));
}
1.异常处理的方式一:try-catch-finally的使用:
try {
//可能出现异常的代码
}catch(<u>异常类型1</u> 变量名1){
//处理异常的方式1
}catch(<u>异常类型2</u> 变量名2){
//
}catch(<u>异常类型3</u> 变量名3){
//处理异常的方式3
}
<u>...</u>
finally {
//一定会执行的代码
}
2.异常处理的方式二:throws + 异常类型:
1.“throws + 异常类型”写在方法的声明处,指明此方法执行时,可能会抛出的异常类型。一旦当方法执行时,出现的异常代码处生成一个异常类的对象,此对象满足throws后异常类型是,就会被抛出。异常代码后续的代码,就不再执行。
2.体会:try-catch-finally:真正将异常处理掉了
throws:只是将异常抛给了方法的调用者。并没有真正将异常处理掉。
开发中怎么选择try-catch-finally还是使用throws
@资料于观看尚硅谷java学习视频整理