throws是将异常抛出,后续代码不再执行。而try…catch是将异常抛出,并且要继续执行后面的代码(try{内部代码},但是try内部代码不再执行,而是跳到外面的代码继续执行)。
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");
System.out.println("如果上面出现错误,我不会执行……"); } 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)
原文:https://www.cnblogs.com/hmy-666/p/12336663.html