java中throws与try...catch有什么区别

throws是将异常抛出,后续代码不再执行。而try…catch是将异常抛出,并且要继续执行后面的代码。

1.try……catch

package com.oracle;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class Demo01Exception {
      /*Exception:编译期间异常,进行编译(写代码的过程)
       *  runtimeException:运行期异常,java程序运行过程中出现的问题     
       *Error:错误(出现的错误无法调试,必须修改源代码)
       *  
       */
    public static void main(String[] args){
        //*Exception:编译期间异常,进行编译(写代码的过程)
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//格式化日期对象。
        Date date =null;
        try {
            date = sdf.parse("1999-0909");
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }//把字符串格式的日期,解析为Date格式日期
        System.out.println(date);
        System.out.println("kkkkk");
    }
}

执行结果:

java.text.ParseException: Unparseable date: "1999-0909"(无法解释的错误。)
    at java.text.DateFormat.parse(DateFormat.java:357)
    at com.oracle.Demo01Exception.main(Demo01Exception.java:18)
null
kkkkk

2.throws

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class Demo01Exception {
      /*Exception:编译期间异常,进行编译(写代码的过程)
       *  runtimeException:运行期异常,java程序运行过程中出现的问题     
       *Error:错误(出现的错误无法调试,必须修改源代码)
       *  
       */
    public static void main(String[] args) throws ParseException{
        //*Exception:编译期间异常,进行编译(写代码的过程)
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//格式化日期对象。
        Date date =null;
        date = sdf.parse("1999-0909");
        //把字符串格式的日期,解析为Date格式日期
        System.out.println(date);
        System.out.println("kkkkk");
    }
}

执行结果:

Exception in thread "main" java.text.ParseException: Unparseable date: "1999-0909"
    at java.text.DateFormat.parse(DateFormat.java:357)
    at com.oracle.Demo01Exception.main(Demo01Exception.java:17)

猜你喜欢

转载自www.cnblogs.com/hmy-666/p/12336663.html