异常处理

1.常见的异常类

(1).编译时异常:

 1 OException:输入输出流异常
 2 
 3 FileNotFoundException:文件找不到的异常
 4 
 5 ClassNotFoundException:类找不到的异常
 6 
 7 DataFormatException:数据格式化异常
 8 
 9 NoSuchFieldException:没有匹配的属性异常
10 
11 NoSuchMethodException:没有匹配的方法异常
12 
13 SQLException:数据库操作异常
14 
15 TimeoutException:执行超时异常

(2).运行时异常

 1 RuntimeException:运行时异常
 2 
 3 NullPointerException:空指针异常
 4 
 5 ArrayIndexOutofBoundsException:数组越界异
 6 
 7 ClassCastException:类型转换异常
 8 
 9 IllegalArgumentException:非法的参数异常
10 
11 InputMismatchException:输入不匹配

 

2.异常的处理方式

(1).try--catch--finally

1.该方式对异常进行了实质上处理,即用自定义形式来输出异常,而不是由系统自带的来进行

2.try表示要检查的可能出现异常的代码段

3.catch即具体处理异常,说明什么异常类,并进行处理

4.finally可有可无,用于异常处理后输出

5.finally一般用于放一些必须执行的语句,因为程序在处理抛出异常后,对之后在try中的语句都不会执行。

 1 public static void test1()
 2     {
 3         try {
 4             int a = 10, b = 0;
 5             System.out.println(a/b);
 6         } catch(ArithmeticException e) {
 7             e.printStackTrace();
 8         } catch(Exception e) {
 9             e.printStackTrace();
10         }
11         finally {
12             System.out.println("异常已处理");
13         }
14     }

(2).throws

本质上并未处理异常,只是将异常抛给上一层来进行处理

 1 public static void main(String[] args)
 2     {
 3         try{
 4             test1();
 5         } catch(Exception e) {
 6             e.printStackTrace();
 7         }
 8     }
 9     
10     public static void test1() throws FileNotFoundException,IOException
11     {
12         File file = new File("hello.txt");
13         FileInputStream fis = new FileInputStream(file);
14         int data = fis.read();
15         fis.close();
16     }

 

3.异常类

(1).要声明版本号

(2).从已有的异常类上继承,并调用父类的构造函数

 1 public class MyException extends RuntimeException {
 2     //确定版本号
 3     static final long serialVersionUID = -7034897193246939L;
 4     
 5     public MyException()
 6     {
 7         super();
 8     }
 9     
10     public MyException(String msg)
11     {
12         super(msg);
13     }
14 }

 

4.throws和throw的区别:

(1).throws是去转移异常的处理者

(2).throw是去抛出一个异常类

1 throw ExceptionObject;

 throw应用的一个实例:

 1 public static void Test3()
 2     {
 3         Scanner input = new Scanner(System.in);
 4         int a = input.nextInt();
 5         int b = input.nextInt();
 6         if (b == 0)
 7         {
 8             try {
 9                 throw new Exception();
10             } catch (Exception e) {
11                 System.out.println("除数不能为0!");
12             }
13         }
14         else 
15         {
16             System.out.println(a / b);
17         }
18     }

 

posted @ 2022-03-22 22:10  jue1e0  阅读(55)  评论(0)    收藏  举报