zoukankan      html  css  js  c++  java
  • Java异常的一个小知识

    有以下两个代码:

    package com.lk.A;
    
    public class Test3 {
    	public static void main(String[] args) {
    		try {
    			int a = args.length;
    			int b = 42/a;
    			int c[]  = {42};
    			c[42] = 42;
    			System.out.println("b="+b);
    		} catch (ArithmeticException e) {
    			// TODO: handle exception
    			System.out.println("除0异常:"+e);
    		} catch(ArrayIndexOutOfBoundsException e){
    			System.out.println("数组越界异常:"+e);
    		}
    	}
    }
    

      和

    package com.lk.A;
    
    public class Test4 {
    	public static void main(String[] args) {
    		try {
    			procedure();
    			int a = 1;
    			int b = 42/a;
    			System.out.println("b="+b);
    		} catch (ArithmeticException e) {
    			// TODO: handle exception
    			System.out.println("除0异常:"+e);
    		}
    	}
    
    	private static void procedure() {
    		// TODO Auto-generated method stub
    		try {
    			int c[]  = {42};
    			c[42] = 42;
    		} catch (ArrayIndexOutOfBoundsException e) {
    			// TODO: handle exception
    			System.out.println("数组越界异常:"+e);
    		}
    		
    	}
    }
    

      这个运行的结果不尽相同。

    第一个运行到错误的地方就要中断了,不能再继续。因为在Java中在一个try字句中如果程序发生异常则不会继续向下执行。

    而第二个程序不同的是,有一个try块在方法里,如果这个方法里的try对异常进行了处理,则后面的代码是可以执行的。

    附上一个小知识:

    问:Java程序中发生的异常必须进行处理吗?

    答:Java异常处理不是必须或者不必须的问题,而是一种程序逻辑的问题。

    如果程序在某种条件下执行正常,则程序继续进行,无须处理异常。如果发生了异常,比如数据库连接不上、文件没有找到等,则说明某种条件发生了,这就需要你对这种条件进行处理。

  • 相关阅读:
    剑指 Offer 41. 数据流中的中位数
    剑指 Offer 19. 正则表达式匹配
    leetcode 75 颜色分类
    Deepin 添加 open as root
    window 下 无损进行其他文件系统(ext4) 到 ntfs 文件系统的转化
    Windows Teminal Preview Settings
    CentOS 7 容器内替换 apt-get 源为阿里源
    Ubuntu 20.04 安装 Consul
    elementary os 15 添加Open folder as root
    elementary os 15 gitbook install
  • 原文地址:https://www.cnblogs.com/luankun0214/p/4398376.html
Copyright © 2011-2022 走看看