Java(17)异常


一.异常

1.1程序执行过程中出现的影响程序运行正常运行的现象.

1.2异常语法

try{

//代码块

}catch(异常类型 e){

}catch(异常类型 e){

}...{

}finally{

注意:try:表示可能出现异常的代码块

catch:抓取异常,并进行处理

可能抓取多个异常,异常范围要从小到大抓取

并且只会执行第一个匹配的异常类型

finally:最后的,不管是否出现异常,finally中的代码一直会执行,除非虚拟机(syatem.exit(1)这个情况外)

使用if结构:

 1 public class Text1 {
 2     /*
 3      * 1.什么是异常? 定义:异常是程序在执行时发生的事件,它会打断指令的正常流程。 
 4      */
 5     public static void main(String[] args){
 6         Scanner input = new Scanner(System.in);
 7         System.out.println("请输入被除数");
 8         int num = 0;
 9         if(input.hasNextInt()){
10             num = input.nextInt();
11         }else{
12             System.out.println("输入的被除数不是整数,程序退出");
13             System.exit(1);
14         }
15         System.out.println("请输入除数");
16         int num1 = 0;
17         if(input.hasNextInt()){
18             num1 = input.nextInt();
19             if(0==num1){
20                 System.out.println("输入的除数是0,程序退出");
21                 System.exit(1);
22             }
23         }else{
24             System.out.println("输入的除数不是整数,程序退出");
25             System.exit(1);
26         }
27         System.out.println(String.format("%d/%d =%d",num,num1,num/num1));
28         System.out.println("感谢使用本程序");
29 
30     }
31 }
示例1

运行结果为:

使用try-catch-finally:

 1 //使用 try catch finally处理异常
 2 public class Test2 {
 3     public static void main(String[] args) {
 4         Scanner input = new Scanner(System.in);
 5         System.out.println("请输入被除数");
 6         try {
 7             int num = input.nextInt();
 8             System.out.println("请输入除数");
 9             int num1 = input.nextInt();
10             System.out.println(String.format("%d/%d =%d", num, num1, num / num1));
11         } catch (Exception e) {
12             System.err.println("出现错误,被除数和除数必须是整数," + "除数不能为零");
13             System.out.println(e.getMessage());
14             //err是运行期异常和错误反馈的输出流的方向,但它只能在屏幕上打印,即使你重定向也一样
15             //重定向就是通过各种方法将各种网络请求重新定个方向转到其他位置
16             //用err打印出的字符串·,再用eclipse的input会显示呈红色;
17         } finally {
18             System.out.println("感谢使用本程序!");
19         }
20     }
21 }
22 /*
23  * 如果try块中所有语句正常执行完毕,那么finally块就会执行
24  * 如果try语句块在执行过程中碰到异常,无论这种异常能否被catch块捕捉到,都将执行finally块中的代码
25  * 注意:即使在try块和catch块中存在return语句,finally块中语句也会执行
26  * 发生异常时的执行顺序:执行try块或catch中return之前的语句,执行finally块中的语句, 执行try或catch中的return语句退出
27  * finally 块中语句不被执行的唯一情况:在异常处理代码中执行System.exit(1),将退出java虚拟机
28  */
示例2

运行结果为:

1.3 throws 声明异常

a.就是当前方法,不能解决这个异常的时候,必须把这个异常交给上一个调用的去处理

b.语法

访问修饰符 返回值类型 方法名(参数列表)[throws 异常]{}

二.java异常体系

Throwable

|--error:(出现不能通过程序处理的错误)

|--Exception:可以同程序抓取或者抛出的错误

|--检查异常(非运行时异常):编译阶段会出现的异常

SQlExceqtion,

IOException,

ClassNotFoundException

|-- 非检查异常(运行阶段异常RunTimeException):运行简单会出现的异常

NullPointerException,

ArrayIndexOutOfBoundsException,

ClassCastException

注意:cgecked异常,是必需处理的

运行时异常,可以不处理

优质内容筛选与推荐>>
1、Dynamic in C# 4.0, Part 1
2、如何衡量一个项目的交付质量???
3、YII2 Rules 规则大全
4、启动spark集群
5、angular引用iframe报错解决方法


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn