zoukankan      html  css  js  c++  java
  • java里的throws 和 trycatch 的用法

    如果在 定义的方法中 会有语句抛出异常 而你又不希望在这个方法体内对此异常进行处理,可以使用throws在声明方法的时候,同时声明他可能会跑出的异常。比如:


    例子1:
    public void go() throws SQLExceptions
    {
        //...
        Connection conn = ds.getConnection();
        //...
    }

    本来ds.getConnection()将可能会抛出SQLException,但现在使用throws 在方法名处声明了,所以在方法体中就不需要 try/catch 块来处理SQLException 了.


    例子2:
    class test_throws
    {
        public static void main(String args[]) throws IOException // { //main方法内 可能会抛出IOException异常
            //main方法并没有处理该异常,而是把它丢出去由调用它的人来处理(也就是给jvm处理)
            //....
        }
    }

    比喻:

        程序是老板让你做的事, 异常就是做事过程中遇到的问题, 如果问题你能够处理, 那么你可以自己处理, 如果不能处理的问题, 定义出来, 抛给老板. throws就是抛给老板的问题了。


    例子3:
    public void a() throws 丢给老板的Exception{

        try{
            //做老板给你的事情
        } catch(你能处理的Exception e){
            //处理你能解决的问题
        } finally {    
            //不管问题有没有发生, 都要处理的工作
        }

    }


    如果 一个 方法里有多个异常,多个异常之间,用 逗号 隔开就ok了;

    例子4:

    public void doClick(View v) throws 异常1, 异常2, 异常3, 异常4{
       
        //产生异常1的语句


        //产生异常2的语句
        //产生异常3的语句

       //产生异常4的语句

    }









  • 相关阅读:
    hadoopfs: 未找到命令...
    WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    centos 7 安装音乐播放器(亲测可用)(转载)
    Linux 脚本编写基础
    Zip加密
    Qt嵌入cef3关闭窗口时崩溃的问题
    C++11多线程基础
    C++11多线程(std::atomic)
    C++11多线程(thread_local)
    VS 新建RelWithDebInfo模式
  • 原文地址:https://www.cnblogs.com/liulaolaiu/p/11744729.html
Copyright © 2011-2022 走看看