【异常、线程】

今日内容
    异常
    多线程

异常
    什么是异常
        异常就是不正常的情况,在Java中的异常指的是程序在运行过程中出现的错误

        Java是面向对象的语言,所有的东西都可以封装对象,异常也照样被封装成了对象,方便我们对这些错误
        进行研究和解决,这些对象肯定有对应的类,这些类就是异常类,在程序中可能出现各种各样的错误,所以定义了
        很多的异常类,这些异常类的共性不断向上抽取就形参了异常的体系

    异常的体系结构
        Throwable(类)
            |-Error:严重的错误,程序员不能通过异常的处理(比如捕获、抛出)代码解决的问题,比如:内存溢出,数据库崩溃,服务器宕机了
            |-Exception:非严重的错误,可以通过代码处理的错误
                |-运行时异常:包括RuntimeException及其子类
                |-编译时异常:包括Exception下除了RuntimeException及其子类之外的所有异常

        运行时异常:在运行时期才会报出的异常,编译时期不会报错,在编译时期可以处理也可以不处理
        编译时异常:在编译时期就报出的异常,编译时期必须对其进行处理,否则编译报错


    throw关键字
        位置:
            在方法内

        作用:
            制造异常的方式
            可以抛出异常对象或者异常对象名

    异常处理
        方式一:抛出
            throws关键字
            位置:
                在方法声明上小括号后面
                在方法的声明上使用throws抛出异常类名,可以同时抛出多个,多个之间使用逗号(,)隔开


            如何我们自己不想处理或者没有能力处理的时候,使用throws来处理异常,这种处理方式是抛出
            别人(方法的调用者)来处理
            throws抛出只处理编译时异常,不会处理运行时异常

        方式二:捕获
            try...catch...finally

            格式一:
                try{

                }catch(异常类型 变量名){

                }

            格式二:
                try{

                }catch(异常类型 变量名) {

                }finally{

                }
            格式三:
                try{

                }finally{

                }

            格式解释:
                try:    用于检测代码是否有异常,一般存放的是有可能出现异常的代码
                catch:  用于捕获和处理异常,小括号用于捕获,大括号用于处理
                finally:用于处理收尾工作,比如释放资源等,一般存放的一定要执行的代码
                        finally语句块中的代码一定会被执行,不论是否发生异常

            格式的注意事项:
                (1)try/catch/finally这三个语句块不能单独存在
                    只能组成上面三种格式,没有其他组成了

                (2)在格式中catch语句块可以出现多次

            try...catch...finally处理方式,既可以处理编译时异常,也可以处理运行时异常

    Throwable中的常见方法
        String getMessage():获取异常出现的原因
        String toString():获取异常的类型(异常的全类名),加上异常出现的原因
        void printStackTrace():打印异常的详细信息,异常的类型、异常的原因和异常出现位置
                               该方法是JVM底层默认处理异常打印异常信息的方式

    自定义异常
        如何定义
            (1)自定义一个类,继承Exception或者RuntimeException
                如果继承Exception,那么就是自定义的编译时异常
                如果继承RuntimeException,那么就是自定义的运行时异常

            (2)生成两个构造方法
                一个空参构造
                一个带一个字符串参数的构造方法,用于传递异常的原因

        如何使用
            JDK提供的异常类如何使用,自定义的异常类也如何使用
            如果是编译时异常在编译时期必须处理,可以throws也可以try...catch
            如果是运行时异常在编译可以不处理,也可以处理,使用try...catch处理


多线程
    进程:正在执行的软件(应用程序),占用内存和CPU资源
    线程:是进程中的一条执行路径,一个进程可以包含多条线程
          一个进程至少包含一条线程,如何没有线程那么进程也会随之结束


    创建线程的方式
        方式一:继承Thread类
            步骤:
                (1)自定义一个类继承Thread类,自定义类就变成了一个线程类
                (2)重写Thread类中的run方法
                    run方法中就是线程执行的代码
                    @override
                    public void run() {

                    }
                (3)在测试类中,创建自定义的对象
                (4)启动线程,调用start()方法
                     start方法做两件事:
                        a:启动线程
                        b:调用run方法

                // (1)自定义一个类继承Thread类,自定义类就变成了一个线程类
                public class MyThread extends Thread {
                    (2)重写Thread类中的run方法
                    public void run() {
                        for(int i = 0; i< 100 ;i++){
                            System.out.println("helloworld!"+i);
                        }
                    }
                }

                // 测试类
                public class Test {
                    public static void main(String[] args){ // main
                        // (3)在测试类中,创建自定义的对象
                        MyThread mt = new MyThread();       // Thread-0
                        // (4)启动线程,调用start()方法
                        mt.start();

                        MyThread mt2 = new MyThread();//    // Thread-1
                        mt2.start();
                    }
                }

        方法二:实现Runnable接口

今日重点
    异常
        能说编译时异常和运行时异常的区别
        能够使用两种异常处理方式(throws和try...catch)处理异常
        能够自定义异常并使用

    多线程
        熟练掌握线程的实现方式一的代码编写
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子丶Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值