2019.8.21

解答问题

简述什么是异常

程序在运行过程中发生由于外部问题(如硬件错误、输入错误)等导致的程序异常事件。(百度百科)

异常的继承体系

2019.8.21_第1张图片

简述异常的处理方式

一个java程序违反了java语义的时候,JVM虚拟机就会抛出一个异常,比如说当遇到的null的时候,会抛出一个nullpointExcepiton,当遇到下标越界的时候就会抛出indexoutofbroundsException,除此之外,程序员还可以自定义异常,去拓展这种语义的检查,并在合适的时机,通过throw关键字抛出异常。其中,try{}是监控的代码语句块,catch{}是处理异常,finally{}语句块无论是否发生异常都会执行。

throw
  • throw是直接编写在语句之中的,表示人为进行异常的抛出。
  • .throw 用于方法块里面的代码,比throws的层次要低,比如try…catch …语句块,表示它抛出异常,
    但它不会处理它, 而是由方法块的throws Exception来调用异常处理类来处理。
  • throw是抛出一个具体的异常类,产生一个异常。
throws
  • 主要在方法声明上使用,并且的告诉用户本方法可能产生的异常,同时该方法可能不处理此异常
  • 它常用在方法的后面。比如
    public static void main(String[] args) throws SQLException
  • throws则是在方法名后标出该方法会产生何种异常需要方法的使用者捕获并处理。
多个catch处理的注意事项
  • 一定要把异常范围小的放在前面,范围大的放在后面
  • Exception这个异常的根类一定要刚在最后一个catch里面,如果放在前面或者中间,任何异常都会和Exception匹配的,就会报已捕获到…异常的错误。
简述finally关键字的特点和作用
  • 被finally控制的语句体一定会执行。
  • 特殊情况:在执行到finally之前jvm退出了(比如System.exit(0))。
  • 是try语句中的一个语句体,不能单独使用,用来释放资源。
Throwable类的常见方法及方法描述
  • getMessage()
    获取异常信息,返回字符串。
  • toString()
    获取异常类名和异常信息,返回字符串。
  • void printStackTrace() 打印异常的堆栈的跟踪信息
自定义异常的步骤

2019.8.21_第2张图片

处理异常

  • jvm 自带处理异常: 1.第一种(位置,时间,异常的信息)打印出来 ,2.把程序进行终止
  • jvm 处理异常:如果程序发生了异常,,没有任何方法或者是类来处理这个异常,最后就有jvm来处
  • 手动处理异常:1.抛出异常,让调用值去处理 (捕获异常) 2.自己来处理
  • 处理异常的五个关键字: try catch finally throw throws
  • 自己处理异常的第一种方法 语法格式:
try {
                                   有可能发生异常代码

                                 }catch (异常的类型 的申明,比如控制针异常,算术异常等等){
                            
                                      发生异常之后执行 这里面的代码           
                
                                    }
  • 常见的异常: ArithmeticException 算术异常: ParseException 格式转化异常错误 java.lang.NullPointerException 空指针异常

File

  • File类主要是JAVA为文件这块的操作(如删除、新增等)而设计的相关类
  • File类的包名是java.io,其实现了Serializable, Comparable两大接口以便于其对象可序列化和比较
  • Windows: 根路径也就是其盘符 UNIX: 表示一个斜杠
  • File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永不改变
  • 对象的 构造方法:public File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例
  • public File(String parent,String child) parent 表示父级目录路径(字符串), child 表示子目录(字符串)
  • public File(File parent,String child) 表示父级目录路径(文件对象),child 表示子目录(字符串),只要有父子关系,必须父目录存在
  • 创建文件的方法:createNewFile()
    创建一个文件夹 public boolean mkdir() 创建一个文件夹
    public boolean mkdirs() 如果父目录不存在,一同创建父目录
    • public boolean delete() 删除一个文件 包括空的文件夹
    • 注意点: 不会进电脑垃圾回收站
    • 重命名文件: public boolean renameTo(File dest) 注意点:如果在同一个目录下,是修改其名字,如果不在同一个的目录下是剪切+修改名字
    • public boolean exists() 判断这个文件是否存在
    • public boolean isDirectory() 判断是否是文件夹
    • public boolean isFile() 是否是一个文件
    • 获取路径 public String getAbsolutePath()
    • public String getPath() 获取构造方法传递的那个参数的路径 new File(“d:\1.txt”)
    • public String getName() 获取文件的名称
    • public String getParent() 返回上一级目录
    • public long length() 文件内容的的长度(字节数)
    • public String[] list() 返回的是改目录下的第一级的所有文件包括文件夹

疑问

不能拷贝一个文件夹吗

你可能感兴趣的:(2019.8.21)