博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中的异常处理
阅读量:6767 次
发布时间:2019-06-26

本文共 2212 字,大约阅读时间需要 7 分钟。

1 class YiChang{ 2     public static void main(String[] args){ 3         A a=new A(); 4         a.show(); 5     } 6 } 7  8 class A{ 9     int[] i={1,2,3};10     public void show(){11         System.out.println(i[3]);12     }13 }

运行上面代码,会抛出这样的错误。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3at A.show(YiChang.java:11)at YiChang.main(YiChang.java:4)

除了让虚拟机为我们抛出异常外,我们也可以人为的控制异常。

我们有两种方法:throws和throw。throws是申明异常,throw是抛出问题对象,下面让我们具体看看这两种是怎么实现的。

首先我们在函数中加入throws(如下在10行函数处)

1 class YiChang{ 2     public static void main(String[] args){ 3         A a=new A(); 4         a.show(); 5     } 6 } 7  8 class A{ 9     int[] i={1,2,3};10     public void show()throws Exception{ 11         System.out.println(i[3]);12     }13 }

此时的运行结果为

YiChang.java:4: 错误: 未报告的异常错误Exception; 必须对其进行捕获或声明以便抛出

让我们再看看throw,此时会用到try(){}catch(){}finally(){},try用来放可能发生问题的代码,catch用来捕获问题,finally用来放一定会执行的语句。

1 class YiChang{ 2     public static void main(String[] args){ 3         A a=new A(); 4         try{ 5             a.show(); 6         } 7         catch(Exception e){       //无处不在的多态 8             System.out.println("wrong"); 9         }10     }11 }12 13 class A{14     int[] i={1,2,3};15     public void show(){16         System.out.println(i[3]);17     }18 }

输出结果为wrong

此时我们就会想,能不能对程序中的错误实现认为的控制呢?这个时候就会用到了throw

class YiChang{
    public static void main(String[] args){
        A a=new A();         try{
            a.show(3);         }         catch(Exception e){
            System.out.println("wrong");             System.out.println("message"+e.getMessage());             System.out.println("toString"+e.toString());             e.printStackTrace();         }     } } class A{
    int[] i={1,2,3};     public void show(int j) throws Exception{
        if(j>=3){
            throw new Exception("j beyond the length");         }         System.out.println(i[j]);     } }

此时我们需要看看e里面究竟有什么方法。这里写几个常用的方法:toString()、getMessage()、printStackTrace()。下面是运行结果

wrongmessagej beyond the lengthtoStringjava.lang.Exception: j beyond the lengthjava.lang.Exception: j beyond the length    at A.show(YiChang.java:20)    at YiChang.main(YiChang.java:5)

 

转载于:https://www.cnblogs.com/Jc-zhu/p/4067960.html

你可能感兴趣的文章
IPV6IPV4双栈协议DNS解析抓包分析
查看>>
“WCF并发与限流体”系列[共7篇]
查看>>
LVS集群之十种调度算法及负载均衡--理论
查看>>
shell 脚本监控Linux 性能
查看>>
RedHat搭建Samba服务器
查看>>
查询SQL Server system session ID?
查看>>
IDEA或Webstorm设置Ctrl+滚轮调整字体大小
查看>>
String[]转String
查看>>
【远程用户建立】
查看>>
各种编程语言下字符串分割及foreach遍历对比
查看>>
MySQL常用操作基本操作
查看>>
秒开缓存服务器详细介绍
查看>>
WebGoat题目解答(General~XSS)
查看>>
网页页面 自动刷新的3种代码
查看>>
Android 实现推送功能
查看>>
【framework】spring3-mvc-开篇
查看>>
网络基础
查看>>
Eclipse智能提示及快捷键
查看>>
数据驱动安全架构升级---“花瓶”模型迎来V5.0(一)
查看>>
Linux安装nginx
查看>>