A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.异常
    1.需要掌握:
        1.如何处理异常
        2.如何自定义一个异常

    2.异常的体系:
        Throwable
            |-Error(不用管)
            |-Exception(异常)
                |-RuntimeException(运行时异常)
                |-其他(编译时异常)

    3.JVM默认如何处理异常:(了解)
        把异常信息打印到控制台,然后停止程序.

    4.异常处理:
        1.一次处理一个异常
            try{
                可能会出现异常的内容.
            }catch(NullPointException e){
                对异常进行处理.(学习阶段,这里一般是打印异常信息)
            }

        2.一次处理多个异常:(掌握)
            try{
                可能会出现异常的内容.
            }catch(异常1 e){
                发生第一种异常时的处理方式.
            }catch(异常2 e2){
                发生第二种异常时的处理方式.
            }....


            JDK1.7新特性: 一次同时处理多个异常(了解)
            try{
                可能会出现异常的内容.
            }catch(异常1 | 异常2 | 异常3... e){
                发生异常时的处理方式.
            }

        注意事项:
            如果多个异常对象存在子父类关系,子类在前面,父类在后面.


        3.编译时异常和运行时异常的区别:   
            1.编译时异常:
                必须要显式处理,不处理不能编译通过

            2.运行时异常:
                可以不用做任何处理.都能通过编译!

            3.如何区分是什么异常:
                1.写代码时,如果报错,不让编译通过,那就是编译时异常,否则是运行时异常
                2.看父类, 如果父类是RuntimeException,就是运行时异常,否则是编译时异常.

        4.异常中的常用方法:
            1.getMessage(): 获取的是异常的信息(从构造方法中传入的信息)

            2.toString(): 获取的是异常的类名和异常信息

            3.printStackTrace(): 把异常的类名,信息,位置打印在控制台上.

        5.异常的应用:
            1.在定义方法时,可以在满足一定条件的时候,通过throw关键字抛出一个异常对象.
                当抛出的异常对象是编译时异常,必须要在方法上通过throws关键字声明该异常的类型
                如果抛出的异常对象是运行时异常, 可以不用在方法上做任何声明.

            2.在调用一个抛出了异常的方法时,如果抛出的是编译时异常,必须要对该异常进行处理,否则编译不能通过
                如果抛出的是运行时异常,可以不用处理该异常.


        6.throw和throws的区别:
            throw 用在方法中,抛出的是异常对象,而且只能抛出一个.
            throws 用在方法声明上,抛出的是异常的类名, 而且可以抛出多个,用逗号隔开.


        7.finally的用法:   
            finally关键字必须要跟 try 或者 try catch 一起用
            修饰的是一个代码块, 被修饰的代码块一定会执行到.(除了JVM已经退出的情况)

        8.面试题:
            1.final finally finalize 三个的区别:
                final 可以修饰类,变量,方法 特点....
                finally 是try catch 语句中的一部分, 不可以单独使用, 被它修饰的代码块是一定会执行的.
                finalize是Object中的一个方法, 在对象被垃圾回收器回收时调用.

            2.finally代码块是在return前还是return后执行?
                return 语句先建立返回路径, 然后执行finally代码块中的内容,再把返回路径中的内容执行完毕.

                不要在finally代码块中写return语句 , 否会导致其他return语句无效!



        9.如何自定义一个异常
            1.步骤:
                1.先定义一个类,继承Exception或者RuntimeException (必须的)
                2.定义空参构造和有参构造,把参数传递给父类. (可选)

            2.为什么要自定义异常:
                1.可以通过类名就知道异常发生的原因
                2.可以根据异常的类型不同,做针对性的处理.

        10.异常的注意事项:
            1.在重写父类中的方法时
                如果父类没有抛出异常, 子类不能抛出异常, 只能try catch 处理
                如果父类抛出了异常, 子类可以抛出相同的,或者该异常的子类.

            2.异常的处理原则:
                1.如果该异常产生时,不会影响到后面代码的正常运行, 可以try catch 处理该异常
                2.如果该异常的发生,会影响到后面代码的正常运行,不要处理这个异常,可以通过throws抛出去.

2.File类
    1.代表的是一个路径!
        当这个路径指向的是一个文件的时候,它就可以操作该文件
        当这个路径指向的是一个文件夹的时候,它就可以操作该文件夹!

    2.构造方法:
        File(String): 根据路径创建一个File对象
        File(String parent,String child): 当前File对象的路径是: parent+child
        File(File parent,String child): 当前File对象的路径是: parent+child

        两个参数的构造方法,第二个参数不能是绝对路径!!!


    3.路径:
        相对路径: 不带盘符的路径
        绝对路径: 带盘符的路径

    4.常用功能:
        1.创建功能:
            createNewFile(): 创建一个文件
            mkdir(): 创建一个文件夹
            mkdirs(): 创建多级目录(推荐在开发时使用)

        2.删除和重命名功能:
            delete(): 可以删除文件和文件夹(在删除文件夹的时候,文件夹必须是空的)
                    删除是不经过回收站

            renameTo(File): 如果两个File对象是在同一路径下,就是改名
                            如果不在同一个路径,就是改名并剪切.

        3.判断功能:
            exists(): 判断文件或者文件夹是否存在
            isFile(): 判断是否是文件
            isDirectory(): 判断是否是文件夹

            canRead(): 是否可读
            canWrite(): 是否可写
            isHidden(): 是否隐藏

        4.获取功能:
            getName(): 获取文件名
            getPath(): 获取构造方法中传入的路径
            getAbslutePath(): 获取绝对路径
            length(): 获取文件的字节大小(不能获取文件夹的大小)
            list(): 获取当前文件夹中的所有文件或者文件夹的名字,返回的是一个String[]
            listFiles(): 获取的是文件夹中的所有文件和文件夹的对象,返回的是File[]
            lastModified(): 获取的是文件的最后一次修改时间的毫秒值.


        5.文件名过滤器(掌握)
            FilenameFilter 接口
                accept(File dir,String name);


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马