• day19 Java学习(异常&IO(File类))


     异常(异常的概述和分类)

       概述:Java运行过程中出现的错误。

       分类:

                * Throwable 

                    * Error  (服务器宕机 , 数据库崩溃...)

                    * Exception     

       异常继承体系:

                * Throwable 

                    * Error 

                    * Exception  

                          * RuntimeException  (运行时异常)

    异常(try...catch的方式处理异常)

     try:用来检测异常的。

     catch:用来捕获异常的。

     finally:释放资源

     异常处理的两种方式:   

                   1: try...catch...finally

                                * try   catch     

                                 * try   catch  finally               

                                 * try   finally   

                     2: throws

     try...catch处理异常的基本格式:

                              * try...catch...finally       

    异常(throws的方式处理异常)

         throws的方式处理异常:

                               * 定义功能方法时,需要把出现问题暴露处理让调用者去处理。

                               * 那么就通过throws在方法上标识。

         

    public void setAge(int age) throws Exception { //throws标识
            if (age<0) {
                //抛出一个异常
                throw new Exception("年龄不能少于0");
            }else if (age==0) {
                throw new Exception("年龄不能等于0");
            }else {
                this.age = age;
            }
            
        }
    例子

    异常(throw的概述以及throws的区别)

        throw的概述:在功能方法内部出现某种情况,程序不能继续运行,需要进行跳转时,就用throw把异常对象抛出。

        

        throw以及throws的区别:

           throw:

                      * 用在方法体内,跟的是异常对象名。

                      * 只能抛出一个异常对象名。                 

                      * 表示抛出异常,有方法体内的语句处理。            

           throws:

                      * 用在方法声明后面,跟的是异常类名。

                      * 可以抛出多个异常类名,用逗号隔开。                 

                      * 表示抛出异常,有方法的调用者处理。     

    异常(finally关键字的特点及作用)

        finally的特点:

                       * 被finally控制的语句体一定会执行。

                       * 特殊情况:在执行到finally之前JVM退出了(比如System.exit( 0 ):退出JVM虚拟机)。

        finally的作用:

                       * 用于释放资源。(是try语句中的一个语句体,不能单独使用)

        注意:千万不要在finally里面写返回语句。(如果里面写了返回语句,那么try和catch的结果都会被改变)

    异常(编译期异常和运行期异常的区别)

        Java的异常被分为两大类:编译期异常和运行期异常。

        所有的RuntimeException类及其子类的实例被称为运行时异常,其他的异常就是编译期异常。

        编译时异常:

                  * Java程序必须显示处理,否则程序就会发生错误,无法通过编译。(比如文件找不到)

         运行时异常:

                  * 无需显示处理,也可以和编译时异常一样处理。

    异常(Throwable的常见方法)

                   * getMessage( )  :获取异常信息,返回字符串

                    * toString( )        : 获取异常类名和异常信息,返回字符串

                    * printStackTrace( )  :获取异常类名和异常信息,以及异常出现在程序中的位置,返回值void。

    异常(自定义异常概述和基本使用)

        自定义异常概述:

                     * 继承自Exception 

                     * 继承自RuntimeException

    异常(异常的注意事项及如何使用异常处理)

            异常的注意事项:

                     * 子类重写父类方法时,子类的方法必须抛出相同的异常或父类的子类。

                     * 如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是它的子集,子类不能抛出父类没有的异常。

                     * 如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常。如果子类方法内有异常抛出,那么子类只能try ,不能throws。

            

            如何使用异常处理:

                     * 原则:如果该功能内部可以将问题处理,用try,如果处理不了,交由调用者处理,这时用throws。

                     * 区别: 

                                 * 后续程序需要继续运行就try

                                  * 后续程序不需要继续运行就throws

                     * 如过JDK没有提供对应的异常,需要自定义异常。                         

    File类(File的概述和构造方法)

            概述:

                   * File更应该叫做一个路径。

                   * 路径分为据对路径和相对路径。

                   * 绝对路径是一个固定的路径,从盘符开始。

                   * 相对路径相对于某个位置。

            构造方法:

                    * File(String pathname):根据一个路径得到File对象。

                    * File(String parent,String child):根据一个目录和一个子文件/目录得到File对象。
                    * File(File parent,String child):根据父File对象和一个子文件/目录得到File对象。

          

    File类(File类的创建功能)   

         创建功能:

                     * publuc boolean createNewFile( ) :创建文件(如果存在这样的文件,就不创建了)

                     * publuc boolean mkdirs( ) :创建文件夹(如果存在这样的文件夹,就不创建了)

         注意事项:

                     * 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。

        public static void main(String[] args) throws IOException {
          //File类的创建功能
          File file =new File("test.txt");
          System.out.println(file.createNewFile()); //createNewFile():创建文件(如果存在这样的文件,就不创建了)
            
          File file2=new File("视频");
          File file3 =new File("testss.txt");      //这样写也可以,文件夹也是可以有后缀的。
          System.out.println(file2.mkdir());       //mkdir():创建文件夹(如果存在这样的文件夹,就不创建了)
          System.out.println(file3.createNewFile()); 
        
          File file4 =new File("视频\1.txt");
          System.out.println(file4.mkdirs());     //mkdirs():创建多级目录文件夹(如果存在这样的文件夹,就不创建了)
        }
    File创建功能

    File类(File类的重命名和删除功能)

         重命名和删除功能:

                     * publuc boolean renameTo(File dest):把文件重命名为指定的文件路径。

                     * publuc boolean  delete( ):删除文件或者文件夹。

         重命名注意事项:

                     * 如果路径名相同,就是改名。

                     * 如果路径名不相同,就是改名并剪切。

         删除注意事项:

                     * Java中的删除不走回收站。

                     * 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹。

      

    File类(File类的判断功能)

        判断功能:

                     * publuc boolean isDirectory( ):判断是否是目录。

                     * publuc boolean isFile( ):判断是否是文件。 

                     * publuc boolean exists( ):判断是否存在。

                     * publuc boolean canRead( ):判断是否可读。 

                     * publuc boolean canWrite( ):判断是否可写。

                     * publuc boolean isHidden( ):判断是否隐藏。 

    File类(File类的获取功能)

       获取功能:

                     * publuc String getAbsolutePath():获取绝对路径

                     * publuc String getPath():获取路径

                     * publuc String getName():获取名称

                     * publuc long length ( ):获取长度。(字节数 )

                     * publuc long lastModified ( ) :获取最后一次的修改时间,毫秒值

                      * publuc String [ ] list ( ) :获取指定目录下的所有文件或者文件夹的名称数组

                      * publuc File [ ] listFiles ( ) :获取指定目录下的所有文件或者文件夹的File数组

    File类(输出指定目录下指定后缀的文件名)

        public static void main(String[] args) throws IOException {
            File dir = new File("D:\");
            File[] arr = dir.listFiles();
            for (File file : arr) {
                if (file.isFile() && file.getName().endsWith(".jpg")) {
                    System.out.println(file);
                }
            }
    例子
  • 相关阅读:
    记一次文件转码与二进制查看学习
    JAVA线程池 之 Executors (二) 原理分析
    JAVA线程池 之 Executors (一) 简介
    问题:部分mysql版本问题
    Java中一个方法字节码的长度会影响程序并发下的性能?
    AccessController.doPrivileged
    Nginx配置WebService、MySQL、SQL Server、ORACLE等代理
    C# 序列化Json时如何忽略JsonProperty(PropertyName =“ someName”)
    C# 文件上传(另一台服务器的共享目录)
    C# 导入Excel读取图片上传
  • 原文地址:https://www.cnblogs.com/feng0001/p/10947397.html
Copyright © 2020-2023  润新知