• java基础篇---异常处理


    认识异常

    异常时导致程序中断运行的一种指令流,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失,所以在程序的设计中必须考虑各种异常的发生,并正确的做好相应的处理,这样才能保证程序的正常执行,在java使用一种称为异常处理的错误捕获机制处理。

    为了能在程序中处理异常情况,必须研究程序中可能会出现的错误和问题

    • 用户输入错误()
    • 设备错误
    • 物理限制(磁盘满了,)
    • 代码错误(程序方法有可能无法正常执行)  

    处理异常

    异常处理的简单格式

    如果在try语句块中的任何代码抛出一个在catch子句中说明的异常类,那么

    1)程序将跳过try语句块的其余代码。

    2)程序将执行catch子句中的处理器代码

    如果在try语句块中的代码没有抛出任何异常,程序将跳过catch子句。

    同时在一个try语句块可以捕获多个异常,并对不同异常作出不同的处理。

    在代码抛出一个异常时,就会终止方法中的剩余代码的处理,并退出这个方法的执行,然后执行finally子句中的语句。

    异常类的继承结果

    在整个java的异常结果中,有两个最常用的类:Exception,Error,这两个类都是Throwable的子类。

    • Exception:一边表示程序中出现的问题,可以直接使用try...catch处理
    • Error:一般是JVM错误,程序中无法处理

    前面所提的都是Exception的子类

    java异常处理机制

    实例一

    package 异常处理;
    public class ExceptionDemo01{
        public static void main(String args[]){
            System.out.println("********** 计算开始 ***********") ;
            int i = 0 ;        // 定义整型变量
            int j = 0 ;            // 定义整型变量
            try{
                String str1 = args[0] ;        // 接收第一个参数
                String str2 = args[1] ;        // 接收第二个参数
                i = Integer.parseInt(str1) ;    // 将第一个参数由字符串变为整型
                j = Integer.parseInt(str2) ;    // 将第二个参数由字符串变为整型
                int temp = i / j ;    // 此处产生了异常
                System.out.println("两个数字相除的结果:" + temp) ;
                System.out.println("----------------------------") ;
            }catch(ArithmeticException e){    // 捕获算术异常
                // System.out.println("算术异常:" + e) ;
                e.printStackTrace() ;
            }catch(NumberFormatException e){    // 捕获数字转换异常
                System.out.println("数字转换异常:" + e);
            }catch(ArrayIndexOutOfBoundsException e){    // 捕获数组越界异常
                System.out.println("数组越界异常:" + e) ;
            }catch(Exception e){
                System.out.println("其他异常:" + e) ;
            }
            System.out.println("********** 计算结束 ***********") ;
        }
    };

    打印结果

    ********** 计算开始 ***********
    数组越界异常:java.lang.ArrayIndexOutOfBoundsException: 0
    ********** 计算结束 ***********
  • 相关阅读:
    unicode编码 utf8
    贝壳IM群聊优化之路
    企点电话SDK的日志追踪系统 https://mp.weixin.qq.com/s/uipndTV8W5s1_qose8MrQQ
    解码未知键的 json 字符串
    内部类
    牛客IOI周赛23普及组全题解
    20以内加减随机试卷
    2929百万级电商平台即时通讯系统设计实践(2)_ev
    org.objectweb.asm.ClassWriter.<init>(I)V异常 .
    VMware安装与卸载CentOS7 详细步骤版本2
  • 原文地址:https://www.cnblogs.com/oumyye/p/4231247.html
Copyright © 2020-2023  润新知