异常处理类32

1.什么是异常,异常机制有什么用?
程序执行过程当中发生不正常情况,这种不正常情况叫做:异常
java把异常信息输出到控制台,供程序员参考可以对程序进行修改

2.Java语言中处理异常包括两种方法:
第一种:在方法声明的位置上,使用throws关键字。(抛给上一集)
第二种:try - catch 语句来捕捉异常。

    举个栗子:
        某公司职员因为失误导致公司财产损失1000;
        “损失1000”可以看作一个异常发生
        处理这种异常
        第一种方法:告诉上级【异常上抛】  上级也有这两种方法处理问题
        第二种:自掏腰包 【异常的捕捉】

3.Java中异常发生,如果一直往上抛就会抛给Java处理器终止这个程序

程序出现异常:

public class ExceptionTest01 {
    public static void main(String[] args) {

//        System.out.println(100/0);
//        System.out.println("hello!");
        //上端出现异常 直接终止程序 下边程序也无法执行

    }
}

第一种:throws处理:

public static void main(String[] args){
         dooSome();
        //以下代码报错的原因 因为dooSome在声明时使用了throws
        //没有处理该异常 编译一次
    }

    public static void dooSome() throws ClassNotFoundException{

        System.out.println("ododooddodo");

    }

第一种处理方式:继续往上抛抛给main方法

public static void main(String[] args) throws ClassNotFoundException{
         dooSome();
    }

    public static void dooSome() throws ClassNotFoundException{

        System.out.println("ododooddodo");

    }

第二种处理方式:
try - catch 进行捕捉

 public static void main(String[] args){
         try{
             dooSome();
         }catch (ClassNotFoundException e){
             e.printStackTrace();
         }

    }

    public static void dooSome() throws ClassNotFoundException{

        System.out.println("ododooddodo");

    }
}

throws处理异常
处理异常的态度:上报

/*
    处理异常的第一种方法: throws
    谁调用我这个方法,我就给谁,交给调用这处理我的问题
 */

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class ExceptionTest03 {
    public static void main(String[] args) throws Exception {
        System.out.println("main begin");
        m1();
        System.out.println("main over!");
    }

    //Exception包括所有异常
    private static void m1() throws Exception{
        System.out.println("m1 begin");
        m2();
        System.out.println("m1 over");
    }

    //抛FileNotFoundException 的父类 IOException
    private static void m2() throws IOException {
        System.out.println("m2 begin");
        m3();
        System.out.println("m2 over");
    }

    private static void m3() throws FileNotFoundException {
        //调用jdk中的构造方法
        //创建一个输入流这个流需要传入一个文件的路径
        //报错的原因
            //这里调用了一个构造方法FileInputStream()
            //构造方法声明上有 throws FileNotFoundException
            //编译时异常
        new FileInputStream("F:\\Java中的控制语句.docx");
    }


}

//一般不建议在main方法中使用throws
//第二种方法 try - catch


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class ExceptionTest03 {
    public static void main(String[] args){
        System.out.println("main begin");
        try{
            m1();
        }catch (FileNotFoundException a){

        } catch (Exception e) {

            System.out.println("文件不存在!!!");
        }
        System.out.println("main over!");
    }


    private static void m1() throws Exception{
        System.out.println("m1 begin");
        m2();
        System.out.println("m1 over");
    }


    private static void m2() throws IOException {
        System.out.println("m2 begin");
        m3();
        System.out.println("m2 over");
    }

    private static void m3() throws FileNotFoundException {
 
        new FileInputStream("F:\\Java中的控制语句.docx");
    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值