zoukankan      html  css  js  c++  java
  • java异常处理——基础篇

        异常处理,英文名为exceptional handling,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。异常处理分离了接收和处理错误代码,异常处理(又称为错误处理)功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用 try、catch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。

    异常处理分类

    概念:



    Error:错误,由java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等(程序对其不做处理)

    Exception:异常类的父类,包括编译时错误和运行时错误,其子类对应各种各样可能出现的异常事件,一般需用户显式的声明和捕获(用户需处理)

    RuntimeException:一般特殊的异常,如被0除、数组下标超范围等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率影响很大。由系统自动检测并将他们教给缺省的异常处理程序(用户不必处理)

    Error 和Exception的区别:

    Error:
    1.总是不可控制的
    2.经常用于表示系统错误或低层资源的错误
    3.如果可能的话,可以在系统级被捕捉

    Exception:

    1.可以是可控制的也可以是不可控制的

    2.由程序媛导致的错误

    3.应该在应用程序集被处理掉


    异常的捕获和处理

    异常处理的捕获和异常主要包括五个关键字:try,catch,finally,throw,throws。




        当异常发生时,程序会中止当前的流程,根据获取异常的类型去执行相应的catch代码段,finally段的代码无论是否发生异常都有执行,执行后用于释放资源。

    import java.io.*;
    
    public class TestEx{
    	public static void main(String[] args){
    		int[] arr={1,2,3};
    		System.out.println(arr[2]);
    		try{
    			System.out.println(2/0);			
    		}
    		catch(ArithmeticException ae){
    			System.out.println("系统正在维护,请与管理员联系!");
    			ae.printStackTrace();
    			}
    		finally
    		{
    			System.out.println("catch成功!");
    		}
    	}
    }


    运行结果如下:



    throw和throws的区别

    throw:
    1.throw是语句抛出一个异常
    2.出现在函数体中
    3.写了throw后,程序一定会执行该程序
    throws:
    1.throws是方法可能抛出异常的声明。在声明方法时,该方法可能要抛出异常

    2.throws出现在方法函数中

    3.写了throws后,不一定抛出异常,并不一定会出现异常。



    总结:

        异常处理将错误代码独立出来,使得程序更加的严谨,程序写的更加整齐。同时可以顺着调用栈传递错误,这样就可以很快的查到错误的原因,方便以后的维护。

  • 相关阅读:
    操作系统中线程中所需内存来源哪里
    【转】在单片机(MCU)上运行Qt
    【转】Qt QtCreator 所有版本官方下载地址
    emwin之BUTTON控件显示位图和流位图出现卡顿延迟的情况
    【转】8段数码管引脚图,8段数码管动态显示详解
    emwin之窗口ID的唯一性
    KEIL之工程单独文件属性修改
    emwin之在中断服务程序中创建窗口的结果
    emwin之创建窗口与窗口回调函数的句柄是一致的
    【转】C语言堆栈入门——堆和栈的区别
  • 原文地址:https://www.cnblogs.com/chenxiaochan/p/7237608.html
Copyright © 2011-2022 走看看