黑马程序员—javaSE—异常

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

一、异常
1、异常的概述和分类
Throwable
Error – 内存溢出、数据库崩溃(修改代码)

        Exception
            RuntimeException -- 运行期异常(修改代码) -- 如果出现了这些异常,那么一定是你的问题。

            非RuntimeException -- 需要异常处理
                两种方式:
                    try...catch
                    throws

2、JVM默认是如何处理异常的
    会将异常名称 + 异常信息 + 异常出现的位置,打印到控制台,然后结束运行。
    后面的代码将不能执行到。


3、try...catch的方式处理异常1

    try {
        // 可能出问题的代码
    } catch(异常类名 变量名) {
        // 异常处理代码
    } finally {
        // 必须执行的代码
        // 释放资源
    }

4、try...catch的方式处理异常2
    针对多个异常,一个try多个catch的方式。如果有子父类关系,父类要放到后面。

    1.7新特性
    try {
        // 可能出问题的代码
    } catch(异常类名1 | 异常类名2 |... 变量名) { // 不能有子父类关系
        // 异常处理代码
    }

5、编译期异常和运行期异常的区别
    编译期异常必须做异常处理,否则编译报错。
    运行期异常可以不做。

6、Throwable的几个常见方法

    String getMessage() -- 异常信息

    String toString() -- 异常名称 + 异常信息

    void printStackTrace() -- 将异常名称 + 异常信息 + 异常出现的位置打印到控制台


7、throws的方式处理异常

    throws 声明异常 -- 在方法的声明上 添加 throws + 异常名称

    throw 关键字 用在方法体里面,将异常抛出的。 -- throw 异常对象;

8、throw的概述以及和throws的区别

9、finally关键字的特点及作用
    除非JVM退出,否则finally里面的代码,不管会不会发生异常,都将执行。

    那么如果try或者catch中有return语句,是在return前还是后执行:
        在return前。
        (如果能表述清楚,可以说下是return中:已经生成一条返回路径,但return语句执行完之前去执行了finally里面的代码,然后接着走了之前的返回路径)

10、finally关键字的面试题

    final
        修饰类。最终类,不能被继承
        修饰方法。最终实现,不能被重写
        修饰变量。其实是一个常量,一旦被赋值就不可更改
    finally
        是异常处理语句结构的一部分,表示总是执行,一般在finally里做释放资源的操作。
    finalize()
        Object类中定义的方法。在对象变成垃圾时,由对象的垃圾回收器调用此方法。由子类重写,以配置系统资源或执行其他清除。(但基本不用)

11、自定义异常概述和基本使用
    实现方式:
        自定义一个异常类,继承自Exception。要提供带字符串参数的构造,具体的实现使用父类即可。

        如果继承自Exception,必须做异常处理。
        如果继承自RuntimeException,可以不必处理。

        开发中,一般是继承自RuntimeException。不必要求调用者非要进行异常处理。

12、异常的注意事项及如何使用异常处理

    子类重写父类的方法,不能缩小父类的访问权限,不能抛出比父类更多的异常。

    如何选择:
        原则:能解决就try,不能就throws
            如果抛出异常后,后面的代码还需要执行,必须try。
            如果抛出异常后,后面的代码不需要执行,可以throws。

13、异常练习 - 键盘录入整数求其二进制表示形式,对非法数据加入异常处理。

二、File类
1、File类的概述和构造方法
File(String pathname)
File(String parent, String filename)
File(File parent, String filename)

2、File类的创建功能
    boolean createNewFile() -- 文件
    boolean mkdir() -- 单级目录
    boolean mkdirs() -- 多级目录

    注意:
        父目录必须存在。
        创建文件还是文件夹,自己要明确。

3、File类的重命名和删除功能
    renameTo(File dest)
        重命名:
            如果是相同目录,重命名。
            如果是不同目录,剪切并重命名。
    delete()
        删除不走回收站。
        带子内容的文件夹删除失败。

4、File类的判断功能
    exists() -- 是否存在
    isFile() -- 是否是文件
    isDirectory() -- 是否是文件夹
    isAbsolute() -- 是否是绝对路径
    canRead() -- 是否可读(windows系统下都可读)
    canWrite() -- 是否可写
    isHidden() -- 是否隐藏

5、File类的获取功能
    String getAbsolutePath() -- 获取绝对路径
    String getPath() -- 获取路径
    String getName() -- 获取文件或文件夹名称
    long length() -- 文件大小  
    long lastModified() -- 最后修改时间

    String[] list() -- 获取目录下所有的文件或者文件夹名称数组
    File[] listFiles() -- 获取目录下所有的文件或者文件夹对象数组


6、输出指定目录下指定后缀的文件名

7、文件名称过滤器的概述及使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值