关于java中异常的简单理解

/*      异常体系:java.lang.Throwable:异常体系的根父类,继承于Object
*       有两个子类1:java.lang.Error(错误JVM发生严重问题,不编写代码进行处理StackOverflowError,OutOfMemoryError)
*               2:java.lang.Exception(可以编写针对性代码处理)(含编译时异常和运行时异常)
*                  数组角标越界,空指针异常
*       异常处理方式1:try-catch-finally
*       异常处理方式2:throws+异常类型
*
*
* */

public class throwableTest {
    public static void main(String[] args) {
//        try{
//            //语句1
//            //语句2//异常抛出异常对象
//            //语句3
//            //一旦进入异常语句,就不在执行try后面的代码,try中声明的对象在try之外不能使用
//        }catch(NullPointerException e){//catch捕捉异常对象进行匹配
//                e.getMessage();
//        }catch(e){//如果声明了多个catch结构,不同异常类型之间不存在子父类下。谁声明
//            //在上面和下面没有关系,如果同异常类型之间存在子父类关系,将父类类型写在第一个catch语句
//            //若还存在异常,就不会执行除finally 以外的语句
//        }catch(e){//1:可以写自己的处理方式
//            //2:调用方法(推荐)
//            e.printStackTrace();//打印异常详细信息
//            //3
//            e.getMessage(e);//获取异常发生的原因
//        }finally {
//            //即使上面try或者catch中是否还有return 语句
//            //一定要被执行的代码
//            //优先执行finally语句的内容
//            //++sum;注意没return 此时sum是局部变量
//        }
//    }
//
//--------------处理方式2:
//    public void methon() throws //异常处理1,异常处理2{
//        //编译异常
//    }//没解决,抛给他的调用者,一直抛,如果到main中就要被解决(try catch)
        //-----------------------------------手动抛出异常-------------------
        Student s1 =  new Student();
        s1.setId(10);
        System.out.println(s1);
//        s1.setId(-10);手动抛出异常
        //异常语句下不执行
        //-----------------手动抛出自定义异常
        //throw + 自定义异常名(该异常类型应该继承于异常类)
        //自定义异常类
        //1:一般继承于RuntimeException / Exception
        //2:通常提供几个重载的构造器
        //3:提供一个全局常量,声明为static final long seriaVersionUID=

    }
}
class Student {
   private int id;
    public void setId(int id){
        if(id>0)
            this.id=id;
//        else
//            System.out.println("");
        //手动抛出异常
        else{
            throw new RuntimeException("输入非法");//异常后其下面语句不执行,无s
        }
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                '}';
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值