异常和IO

1.异常的概述分类

  异常就是java程序在运行过程中出现的错误

2.jvm默认是如果处理异常的

  main方法收到问题时,有两种是处理方式

  自己将问题处理,然后运行

  自己没有针对问题的处理方式,只有交给调用main的jvm来处理,并将异常名称,异常信息,异常出现的位置

    打印在了控制台上,同时将程序停止运行(也就是报错)。

3.try...catch的方式处理异常

  try时用来检测异常

  catch是用来捕获异常

  finally 释放资源

1     int i = 5;
2     int b = 0;
3     try {
4         int c = i/5;
5     } catch (Exception e) {
6             System.out.println(e.getMessage());        // 查看异常信息
7         }
 1       

    try...catch的方式处理多个异常

       JDK7以后处理多个异常的方式及注意事项

       int i = 5;
 2         int b = 0;
 3         try {
 4             int c = i / 5;
 5         } catch (ArithmeticException e) {//只可以捕获除零错误
 6             System.out.println("除数不能为零");
 7         } catch (ArrayIndexOutOfBoundsException e) {//只可以捕获下标越界
 8             System.out.println("索引越界了");
 9 
10         } catch (Exception e) { // Exception e = new NullPointerException();
11             // 如果把所有的错误都放入Exception里面,完全可以接收异常信息,但是不利于错误的查找
12             System.out.println("出错了");
13         }
14         System.out.println("over");

  finally关键字

    

 1                 int i = 5;
 2         int b = 0;
 3         try {
 4             int c = i / 5;    
 5             //直接退出java虚拟机这是系统级别的退出,jvm不在运行
 6             System.exit(0);
 7         } catch (Exception e) {
 8             System.out.println("出错了");
 9         }finally {
10             //try当中无论是渝澳catch,还是return语句他都会执行
11             //除非退出java虚拟机
         //当出现java虚拟机退出时,finally中的语句就不会运行了,java程序直接终止运行
12 System.out.println("aaaaaaaaaaaaaaaaaaaa"); 13 } 14 System.out.println("over");

4.编译期异常和运行期异常的区别

  java中异常被分为两类,编译器异常和运行时异常,

    当上面出现了add或者surround的时候,就是程序出现了编译器的异常信息,解决方法时要么使用throws或者时使用trycatch进行包围,才能使程序正常运行    

   编译时异常:在编译某个程序的时候,有可能会有这样那样的事情发生,比如文件找不到,这样的异常就必须在编译的时候处理

     如果不处理编译通不过

   运行时异常:就是程序员所犯得错误,需要回来修改代码

      就像空指针的时候你不赋值为null.索引越界异常,你不越界

5.Throwable的几个常见方法

  getMessage()  获取异常信息,返回字符串

  toString()    获取异常类名和异常信息,返回字符串

  printStackTrace()  获取异常类名和异常信息,以及异常出现在程序中的位置,返回值void

猜你喜欢

转载自www.cnblogs.com/xsh726/p/11425065.html