zoukankan      html  css  js  c++  java
  • [Java] 第四章 异常机制

    异常的概念
     *1 Java异常是Java提供的用于处理程序中错误的一种机制。
     *2 所谓错误是指在程序运行的过程中发生的一些异常事件(如:除0溢出,数组越界,文件不存在等)
     *3 设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果。
     *4 Java程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常类对象封装了异常事件的信息并将被提交给Java运行时系统,这个过程称为抛出(throw)异常了。(会被打印出来,默认的处理方式)
     *5 当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。
    package com.bjsxt.chap4;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    import javax.imageio.IIOException;
    
    public class TestTx {
        public static void main(String[] args) {
            int[] arr = {1, 2, 3};
            System.out.println(arr[2]);
            try {
                System.out.println(2/0);
            } catch (ArithmeticException e) {
                System.out.println("系统正在维护中, 请联系管理员");
                e.printStackTrace();
            }
            //TestTx te = new TestTx();
            //te.m(0);
            try {
                new TestTx().m(0);
            } catch (ArithmeticException ae) {
                ae.printStackTrace();
                System.out.println("出错了");
            }
            
            FileInputStream in = null;
            try {
                in = new FileInputStream("myfile.txt");
                int b;
                b = in.read();
                while (b != -1) {
                    System.out.println((char)b);
                    b = in.read();
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                
            } catch (IOException e) {
                System.out.println(e.getMessage());
            } finally {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        void m(int i) throws ArithmeticException {
            if (i == 0) {
                throw new ArithmeticException("被除数为0");
            }
        }
    }


    ****   第四章 异常处理   ****
    * Java 异常是 Java 提供的用于处理程序中错误的一种机制。(“运行期”)
     java.lang....Exceptions
     写程序有问题要有友好界面  医生开单子 {
      1, 鼻腔内感觉异常
      2, 体温持续升高
      3, 分泌乳白色液体
      直接说感冒不就得了么?
     }
     e.printStackTrace(); 非常好!给程序员读。堆栈信息都打印出来!
     java.lang.Throwable { 开车在上山走,
       1, Error         山爆发 JVM 出问题。
       2, Exception {   你可以处理的 -- 刹车坏啦!修好再走。。。
       1, ...
       2, RuntimeException  (经常出,不用逮) 压路面上的小石子
      }
     一个 try 可以跟多个catch
     所以 { 一个茶壶可以跟多个茶碗,一个男人可以三妻四妾。}
     try {
      // 可能抛出异常的语句
      语句一;
      语句二;
     } catch(someEx e) {
      语句;
      }
      catch() {
      语句
      }
      finally { // 这的无论如何都会被执行
      }
      一 : 打开
      二 : 关闭
      finally : 一般进行资源的清除工作。。。!
      我处理不了的事情 : 我交给上一级部门去处理!
      当时 catch 到 Ex 的时候,你至少要做出一种处理。要不那是危险的编程习惯!
      main() 抛出 就是交给 java 运行时系统啦! 它会把堆栈信息打出来!
      一个图 : 五个关键字 {
      try, catch, finally, throw, throws
      }
      一点问题 {
      先逮大的,后逮小的,报错。
      }
      使用自定义异常
      程序中可以使用 throw - 方法后 throws
      如果throw抛出异常之后,方法就结束啦!
      注意 : 重写方法需要抛出与原方法所抛出异常类型一致异常或不抛出异常。
      * 总结 :{
      * 一个图
      * 五个关键字
      * 先逮小的,再逮大的。
      * 异常与重写的关系
      }


  • 相关阅读:
    PAT(乙级)2020年冬季考试
    Educational Codeforces Round 105 (Rated for Div. 2)【ABC】
    三省吾身
    初识SpringBoot
    Controller 层中,到底是 返回界面 还是JSON?(转)
    IDEA控制台中文乱码解决
    springboot引入外部依赖jar包(转)
    Java7的try-with-resources声明(转)
    Java对象的序列化和反序列化(转)
    AcWing1303. 斐波那契前 n 项和(递推/矩阵快速幂)
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786582.html
Copyright © 2011-2022 走看看