《Java语言基础课件异常捕获与File》由会员分享,可在线阅读,更多相关《Java语言基础课件异常捕获与File(24页珍藏版)》请在金锄头文库上搜索。
1、异常捕获与File n 大纲 n 异常Exception 1 异常的概述和分类 2 JVM默认是如何处理异常的 3 处理异常方式一 try catch 4 处理异常方式二 try catch多个异常 5 编译期异常和运行期异常的区别 6 Throwable的几个常见方法 7 throws的方式处理异常 8 finally关键字的特点及作用 9 finally关键字的面试题 10 自定义异常概述和基本使用 11 异常的注意事项及如何使用异常处理 12 练习 键盘输入的用户名只能包含英文字符 n 大纲 n 文件操作DOS 1 File类的概述和构造方法 2 File类的创建功能 3 File类的重
2、命名和删除功能 4 File类的判断功能 5 File类的获取功能 6 案例 输出指定目录下指定后缀的文件名 n异常的概述和分类 异常就是Java程序在运行过程中出现的错误 n 前面接触过的空指针 数组越界 类型转换错误异常等 异常的分类 API查看Throwable Throwable 类是 Java 语言中所有错误或异常的超类 只有当对象是此类 或其子类之一 的实例时 才能通过 Java 虚拟机或者 Java throw 语句抛出 异常的继承体系 u Throwable u Error 服务器宕机 数据库崩溃等 u Exception u RuntimeException nJVM默认是如
3、何处理异常的 main函数收到异常时 会有两种处理方式 1 自己将该问题处理 然后继续运行 2 自己没有针对的处理方式 只有交给调用main的jvm来处理 jvm有一个默认的异常处理机制 就将该异常进行处理 并将该异常的名称 异常的信息 异常 出现的位置打印在了控制台上 同时程序停止运行 为什么会有异常 因为你不知道未来会怎么样 需要做个准备 写代码也是 你需要对一些未知的东西做下处理 比如你去旅游 不知 道会下雨还是出大太阳 你需要准备雨伞和帽子 如果下雨 我有雨伞可用 如果出大太阳 可以用帽子 也有可能天气刚刚 好 雨伞和帽子都用不着 这叫白带 案例 演示JVM默认是如何处理异常的 n处理
4、异常方式一 try catch 自己异常处理的两种方式 n try catch finally 又有三种 try catch try catch finally try finally n throws try catch处理异常的基本格式 try catch finally 案例 自己捕获除数不能为0 ArithmeticException 的异常 n处理异常方式二 try catch多个异常 n 案例 1 捕获数组越界的异常 2 捕获除数不能为0 ArithmeticException 的异常 3 捕获其它异常 l 多个异常可以理解成 不同的问题有不同的处理方式 n 多个异常处理注意 1
5、多个异常时 不能把Exception异常放在最前面 相当于Exception是所有异常的父类 先由子类处理 子不能处理 再由父类处理 2 多个异常也还可以用 或 的方式来写 n编译期异常和运行期异常的区别 Java中的异常被分为两大类 编译时异常和运行时异常 编译期异常和运行期异常的区别 所有的RuntimeException类及其子类的实例被称为运行时异常 其他的异常就是编译时异常 编译时异常 Java程序必须显示处理 否则程序就会发生错误 无法通过编译 运行时异常 无需显示处理 也可以像编译时异常一样处理 比如数组越界 空指针都是运行时异常 n Throwable的几个常见方法 Excep
6、tion是一个继承Throwable的子类 Throwable有几个常用的方法 了解即可 平时都不怎么用 1 getMessage 获取异常信息 返回字符串 2 toString 获取异常类名和异常信息 返回字符串 3 printStackTrace 打印异常类名和异常信息 以及异常出现在程序中的位置 nthrows的方式处理异常 实现方式 定义功能方法时 需要把出现的问题暴露出来让调用者去处理 那么就通过throws在方法上标识 nthrow的概述以及和throws的区别 throw的使用场景 在方法内部出现某种情况 程序不能继续运行 就用throw把异常对象抛出 throws和throw的
7、区别 throws 用在方法声明后面 跟的是异常类名 可以跟多个异常类名 用逗号隔开 它表示抛出异常 由该方法的调用者来处理 throw 用在方法体内方法体内 跟的是异常对象名异常对象名 只能抛出一个异常对象名 表示抛出异常 nfinally关键字的特点及作用 finally的特点 1 finally的语句体一定会执行 2 特殊情况 在执行到finally之前jvm退出了 比如System exit 0 finally的作用 用于释放资源 在IO流操作和数据库操作中会见到 nfinally关键字的面试题面试题 1 final finally和finalizefinalize的区别 n fina
8、l可以修饰类 不能被继承 修饰方法 不能被重写 修饰变量 只能赋值一次 n finally是try语句中的一个语句体 不能单独使用 用来释放资源 n finalize是一个方法 当垃圾回收器确定不存在对该对象的更多引用时 由对象的垃圾回收器调用此方法 2 如果catch里面有return语句 请问finally的代码还会执行吗 如果会 请问是在return前还 是return后 n自定义异常概述和基本使用 为什么需要自定义异常 n 举例 人的年龄 自定义异常实现 1 继承自Exception 2 继承自RuntimeException 异常注意事项 1 子类重写父类方法时 子类的方法必须抛出相
9、同的父类异常 2 如果被重写的方法没有异常抛出 那么子类的方法最好不要抛出异常 3 如果子类方法内有异常发生 那么子类只能try 不能throws 如何使用异常处理 1 原则 如果自己能处理的问题 就用如果自己能处理的问题 就用try catch try catch 如果自己不能解决的问题 就如果自己不能解决的问题 就throwsthrows 2 2 try catchtry catch和和throwsthrows的区别的区别 后续程序需要继续运行就用try 后续程序不需要继续运行就throws 3 如果JDK没有提供对应的异常 需要自定义异常 案例 自定义一个登录异常 n异常的注意事项及如何
10、使用异常处理 练习 键盘输入的用户名只能包含英文字符 n 使用键盘获取用户录入内容 只能传入英文字符串 否则抛出 非法字符 的异常 n 非法字符 的异常需要自定义 n 异常定义为运行时异常 File 文件 1 File更应该叫做一个路径 文件路径或者文件夹路径 a 路径分为绝对路径和相对路径 b 绝对路径是一个固定的路径 从盘符开始 c 相对路径相对于某个位置 在eclipse下是指当前项目下 在dos下 2 查看API指的是当前路径 3 File是指文件和目录路径名的抽象表示形式 构造方法 File String pathname 根据一个路径得到File对象 File String par
11、ent String child 根据一个目录和一个子文件 目录得到File对象 File File parent String child 根据一个父File对象和一个子文件 目录得到File对象 File类的概述和构造方法 n File类的创建功能 创建功能 public boolean createNewFile 创建文件 如果存在这样的文件 就不创建了 public boolean mkdir 创建文件夹 如果存在这样的文件夹 就不创建了 public boolean mkdirs 创建文件夹 如果父文件夹不存在 会帮你创建出来 注意事项 如果你创建文件或者文件夹忘了写盘符路径 那么
12、默认在项目路径下 重命名和删除功能 public boolean renameTo File dest 把文件重命名为指定的文件路径 public boolean delete 删除文件或者文件夹 重命名注意事项 如果路径名相同 就是改名 如果路径名不同 就是改名并剪切 删除注意事项 Java中的删除不走回收站 要删除一个文件夹 请注意该文件夹内不能包含文件或者文件夹 n File类的重命名和删除功能 public boolean isDirectory 判断是否是目录 public boolean isFile 判断是否是文件 public boolean exists 判断是否存在 pub
13、lic boolean canRead 判断是否可读 public boolean canWrite 判断是否可写 public boolean isHidden 判断是否隐藏 nFile类的判断功能 public String getAbsolutePath 获取绝对路径 public String getPath 获取路径 public String getName 获取名称 public long length 获取长度 字节数 public long lastModified 获取最后一次的修改时间 毫秒值 public String list 获取指定目录下的所有文件或者文件夹的名称
14、数组 public File listFiles 获取指定目录下的所有文件或者文件夹的File数组 n File类的获取功能 案例 输出指定目录下指定后缀的文件名 n 需求 判断指定目录下是否有后缀名为 jpg的文件 如果有 就输出该文件名称 n n 文件名称过滤器文件名称过滤器的概述及使用 文件名称过滤器的概述 public String list FilenameFilter filter public File listFiles FileFilter filter 文件名称过滤器的使用 需求 判断指定目录下是否有后缀名为 jpg的文件 如果有 就输出该文件名称 源码分析 带文件名称过滤器的list 方法的源码 内部帮我们调用方法过滤