package com.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * @author shusheng * @description * @Email shusheng@yiji.com * @date 2018/10/10 14:44 */ public class ExceptionDemo4 { /** *有些时候,我们是可以对异常进行处理的,但是又有些时候,我们根本就没有权限去处理某个异常。 *或者说,我处理不了,我就不处理了。 *为了解决出错问题,Java针对这种情况,就提供了另一种处理方案:抛出。 * *格式: *throws 异常类名 *注意:这个格式必须跟在方法的括号后面。 *注意:尽量不要在main方法上抛出异常。 * *小结: *编译期异常抛出,将来调用者必须处理。 *运行期异常抛出,将来调用可以不用处理。 */ public static void main(String[] args) { System.out.println("今天天气很好"); try { /**方法method1()异常输出:java.text.ParseException: Unparseable date: "2014-11-20" at java.text.DateFormat.parse(DateFormat.java:366) at com.test.ExceptionDemo4.method1(ExceptionDemo4.java:42) at com.test.ExceptionDemo4.main(ExceptionDemo4.java:31)*/ method1(); } catch (ParseException e) { e.printStackTrace(); } System.out.println("但是就是不该有雾霾"); /**方法method2()异常输出:Exception in thread "main" java.lang.ArithmeticException: / by zero at com.test.ExceptionDemo4.method2(ExceptionDemo4.java:51) at com.test.ExceptionDemo4.main(ExceptionDemo4.java:40)*/ method2(); } /**编译期异常的抛出,在方法声明上抛出,是为了告诉调用者,你注意了,我有问题。*/ public static void method1() throws ParseException { String s = "2014-11-20"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d = sdf.parse(s); System.out.println(d); } /**运行期异常的抛出*/ public static void method2() throws ArithmeticException { int a = 10; int b = 0; System.out.println(a / b); } }