zoukankan      html  css  js  c++  java
  • 东北话说throw和throws的区别,附代码

    大家好,博主是个东北人哈尔滨那嘎达的,在实习中吧,感觉自己学习之路贼拉长,学习又没乐趣,感觉工作中的人都感觉我都东北话好玩儿,

    那我就用东北话来分享一些知识和学习成果,这样既进步又有趣,以下有什么不对的欢迎大家呲哒我。

    在我们写代码的时候总会遇到抛异常啥的,但是那玩意究竟咋用,往哪嘎达用,我就简简单单分享一下子。

    throws用在方法上,在函数头,而throw出现方法体中,

    throws表示这个方法体内 妖觉是(可能)出现的异常,throw那肯定就是出现了异常,

    处理异常是一层一层往上 leng(抛),一直到某个方法处理了或者leng(抛)给了jvm,

    首先附上代码显示出现了IOException的时候,没有具体方法处理,直接一层层抛给jvm的情况

    package design_mode.proxy.static_proxy;
    
    
    import java.io.IOException;
    
    public class text {
        int age;
        
        public void a() throws IOException{//就直接抛出可能的异常没有处理
            int i=0;
        
            int x=5/i;
                    System.out.println(x);
                    
        }
    public static void main(String[] args) throws IOException{//main函数也没处理就会抛给jvm
        
        
        text t=new text();
            t.a();
    
    }
    }

    主要看代码中的注释,就解释了throws  嘎哈了(干什么了),就是在方法中抛出可能的异常,main函数也抛出可能的异常,最后一层层 leng (抛出)给了jvm,然后控制台输出

    Exception in thread "main" java.lang.ArithmeticException: / by zero
     at design_mode.proxy.static_proxy.text.a(text.java:14)
     at design_mode.proxy.static_proxy.text.main(text.java:22)

    其实咱不管有没有写两个throws,都会由jvm抛出异常by zero所以就说明throws是一层一层抛出可能出现的异常

    下面就说一下用throw的用法,因为当我们用throw就说明一定出现异常了,然后抛给main函数,那么main函数接到throw来的异常再用try catch来写出具体啥异常,

    下面是代码实现和具体的注释解释

    import java.io.IOException;
    
    public class text {
        int age;
        
        public void a() throws IOException{//throws用在方法上,表示这个方法可能抛出的异常
            int i=0;
            if(i==0) {
                throw new IOException();//throw表示已经出现异常,抛给main处理,如果main没处理就会往上抛
            }
            int x=5/i;
                    System.out.println(x);
                    
        }
    public static void main(String[] args){
        
        try {
        text t=new text();
            t.a();
        } catch (IOException e) {
            System.out.println("出现io异常");
        }
        
        
    }
    }

    控制台输出为:出现io异常

    这说明public void a() throws IOException中的throws IOException表明这个a方法可能抛出io异常,然后 throw new IOException();//throw表示已经出现异常,抛给main处理,如果main没处理就会往上抛,但是这里我在main函数中try catch了IOEception并且输出 System.out.println("出现io异常"),所以控制台输出为:出现io异常

    博主是刚刚在实习的小白,希望哪里不对大家多多指正,一起成长一起进步,每天博主会发一个java学习的小知识QAQ,希望如果大家伙儿感觉挺好玩er就点个小心心。

  • 相关阅读:
    hibernate自动建表时设置编码格式
    【友盟统计报表解读】之错误分析iOS版
    用vs2008和vs2005创建win32 console application
    win7 无法启动此程序,因为计算机中丢失glut32.dll
    visual studio 2005 win7 64位版下载
    win7兼容visual studio 2005 的方法
    OpenGL入门学习(一)(转)--环境搭建
    opengl教程
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1)用法
    OpenGL函数思考-glColor
  • 原文地址:https://www.cnblogs.com/zhaokexin/p/9962246.html
Copyright © 2011-2022 走看看