首页 > 技术文章 > 【异常-举例4:抛出异常】

zuixinxian 2018-10-10 15:54 原文

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);
    }

}

 

推荐阅读