java基础学习二之异常

异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。


Java程序运行过程中所发生的异常事件可分为两类:

一、Error: 由jvm生成并抛出,程序中不作处理,如:JVM系统内部错误、资源耗尽等严重情况(无能为力)
二、Exception: 所有异常类的父类(能够处理的)
① RuntimeException:一些经常出现的错误,可catch可不catch;编程导致的错误,程序员的错误(逻辑上的错误)
比如:错误的类型转换;数组访问越界;空指针异常
②非运行时Exception
IO异常
其他。。。


理解:
一、如果出现RuntimeException,就一定是程序员的错误


可以成为异常的第二种分类:
一、未检查异常(unchecked)
包括:error的子类异常 或 RuntimeRxception
特点:不能由编译器检查;可以通过编程避免
二、检查异常(checked)
编译时检查,提高了程序的安全性

这里写图片描述

异常过程:

抛:自动抛出,手动抛出:找到类,声明对象,thow抛出对象
抓:抓住之后有两种处理方式:以下:

异常处理:

一、在try-catch中:(处理)
    getMessage():得到异常的详细信息字符串
    printStackTrace():输出异常的跟踪栈信息,常用于调试
    1.如果异常被处理了,那么其后面的代码继续执行
·    2.那finnally又有何用??因为在catch中也可能出现错误,此时finally中的语句继续执行
二、在thow中:一旦抛出后面的代码不执行(抛出)
    ①抛出已知的异常:如方法定义中抛出的异常
    ②代码中手动抛出异常
    //抛出异常
    public void Metho1(int i) throws Exception{
        if(i == 0)
            throw new Exception();
    }** 

自定义异常:

继承Exception
有两个构造方法:
    无参的
    有string参数的:字符串为描述异常的信息

方法重写中的异常类:

重写方法需要抛出原方法抛出*异常类型一致的类(相同的类或者子类)*或者不抛出异常

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qwerty_4/article/details/73920556