2Day07

异常
指程序运行的非正常情况
在java中是一个类,产生异常就是创建异常对象并抛出异常对象
不是语法错误 语法错误无法编译生成字节码文件
Throwable体系
在java.lang包中
两个子类:Error和Exception
Excepition
编译期异常,写代码时的异常
RuntimeException
运行期异常

        异常处理后程序可以继续运行

    Error
        必须修改源代码才能运行


throw关键字
    try catch finally throw throws
    必须写在方法内部
    new的对象必须是Exception或其子类对象
    抛出异常对象后必须处理异常对象
        若是runtimeException或其子类对象  可以不处理
        若是编译异常,就必须处理该异常,要么throws,要么try...catch

    工作中必须对方法传递进来的参数进行合法性检验,如果参数不合法,那就必须抛出异常,告知方法的调用者参数有异常问题

objects类中的非空判断requireNonNull方法
    判断是否为null

声明异常throws
    将异常交给别人处理
    当方法中抛出异常时,会把异常对象声明给方法的调用者处理
    注意
        throws关键字必须写在方法声明处
        throws关键字后边声明的异常必须是Exception或者是Exception的子类
        方法内部如果抛出多个异常,那么throws后面也必须声明多个异常
            如果抛出的异常有父子类关系,则声明父类异常即可
            调用一个声明抛出异常的方法,我们就必须处理声明的异常
                要么继续用throws声明抛出,交给方法的调用者处理,最终交给JVM
                要么try...catch自己处理异常




Throwable中的三个方法
    getMessage
    toString
    printStackTrace

finally代码块
    不能单独使用,必须和try一起使用
    一般用于资源释放,无论是否出现异常,最后都要资源释放

注意事项
    多个异常处理
        多个异常分别处理
        多个异常一次捕获,多次处理
        多个异常一次捕获一次处理

    如果finally中有return语句,永远返回finally中的结果
    子类重写父类方法时,可以抛出父类相同的异常/父类抛出异常的子类/不抛出异常
        父类方法没有抛出异常时,子类重写父类该方法时也不可抛出异常
        此时子类产生异常,只能捕获处理try catch,不能声明抛出


自定义异常
    格式:public class XXXException extends Exception/RuntimeException{}
    一般以Exception结尾
    必须继承Exception/RuntimeException
        继承Exception必须处理
        继承RuntimeException交给编译器处理
        异常类的构造方法一般继承父类L

多线程
并发和并行
并发:指两个事件或多个事件在同一个时间段内发生 交替执行
并行:指两个事件或多个事件在同一时刻发生 同时进行

线程和进程
    进程:是指一个内存中运行的应用程序 需要进入内存
    线程:是进程中的一个执行单元 一个进程中至少有一个进程
    多线程的好处
        效率高
        多个线程之间互不影响


线程调度
    分时调度 所有线程轮流使用cpu的使用权 平均分配每个线程占用cpu的时间
    抢占式调度 让优先级高的 线程使用CPU 如果线程的优先级相同 那么会随机选择一个(java使用)

主线程:执行主方法的线程
创建多线程的第一种方式:创建Thread类的子类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值