Java进阶【十三期】:【异常处理】 (抛出捕获异常、自定义异常处理)、处理异常的几种方式 【(File】文件路径操作、File文件处理的综合练习

文章目录

  • Java进阶【十三期】:
  • 异常处理
      • 一、异常基本介绍
      • 二、编译异常和运行异常
      • 三、总结
    • 异常的作用
    • 异常的处理方式
      • 一、JVM默认的处理方式
      • 二、自己处理异常
          • 自己 处理的问题
      • 三、总结
    • Throwable 成员方法
    • 抛出异常
      • 总结
    • 异常练习
    • 自定义异常
  • File
    • File 三个 构造方法
    • File 常见方法
      • 一、File - 判断获取方法
          • 代码演示
      • 二、File - 创建和删除方法
          • 代码示例
      • 三、File - 获取并遍历
    • File - 综合练习
      • 练习一、
      • 练习二、
      • 练习三、
      • 练习四、
      • 练习五、
      • 练习六、

Java进阶【十三期】:

异常处理

在这里插入图片描述

一、异常基本介绍

在这里插入图片描述
在这里插入图片描述

二、编译异常和运行异常

在这里插入图片描述
##在这里插入图片描述

三、总结

在这里插入图片描述

异常的作用

在这里插入图片描述

异常的处理方式

在这里插入图片描述

一、JVM默认的处理方式

在这里插入图片描述
在这里插入图片描述

二、自己处理异常

在这里插入图片描述
在这里插入图片描述

自己 处理的问题

在这里插入图片描述
一问答案:
在这里插入图片描述

二问答案:
在这里插入图片描述
三问答案:
在这里插入图片描述
四问答案:
在这里插入图片描述

三、总结

在这里插入图片描述

Throwable 成员方法

在这里插入图片描述
在这里插入图片描述

抛出异常

在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

异常练习

在这里插入图片描述
Girlfriend类

package com.exception;public class Girlfriend {private String name;private int age;public Girlfriend() {}public Girlfriend(String name, int age) {this.name = name;this.age = age;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) throws RuntimeException{int len = name.length();if (len < 3 || len > 10) {throw new RuntimeException();} else {this.name = name;}}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {if (age < 18 || age > 40) {throw new RuntimeException();} else {this.age = age;}}public String toString() {return "Girlfriend{name = " + name + ", age = " + age + "}";}
}

测试类

package com.exception;import java.util.Scanner;public class ExceptionTest {public static void main(String[] MakeFullStack) {Girlfriend girlfriend = new Girlfriend();Scanner sc = new Scanner(System.in);while (true) {try {System.out.println("请输入女朋友的姓名:");String girlName = sc.nextLine();girlfriend.setName(girlName);System.out.println("请输入女朋友年龄:");String string = sc.nextLine();int girlAge = Integer.parseInt(string);girlfriend.setAge(girlAge);break;} catch (NumberFormatException e) {System.out.println("年龄格式有误!");} catch (RuntimeException e) {System.out.println("姓名或者年龄不符合规范!");}}System.out.println(girlfriend);}
}

自定义异常

在这里插入图片描述

  • 首先我们创建连个自定义异常类,一个是处理名字错误的,一个是处理年龄错误的。

NameFormatException 姓名处理鳄类

package com.exception;public class NameFormatException extends RuntimeException {private String message;public NameFormatException() {}public NameFormatException(String message) {// 将用户抛出异常传入的错误信息提交给父类super(message);this.message = message;}public String toString() {return "NameFormatException:" + this.message;}
}

AgeOutOfBoundsException 年龄处理类

package com.exception;public class AgeOutOfBoundsException extends RuntimeException {private String message;public AgeOutOfBoundsException() {}public AgeOutOfBoundsException(String message) {// 将用户抛出异常传入的错误信息提交给父类super(message);this.message = message;}public String toString() {return "AgeOutOfBoundsException:" + message;}
}

然后我们的女朋友类中,处理的时候,抛出我们自定义异常处理类即可。

package com.exception;public class Girlfriend {private String name;private int age;public Girlfriend() {}public Girlfriend(String name, int age) {this.name = name;this.age = age;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) throws RuntimeException{int len = name.length();if (len < 3 || len > 10) {throw new NameFormatException(len + "格式输入有误");} else {this.name = name;}}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {if (age < 18 || age > 40) {throw new AgeOutOfBoundsException(age + "年龄超出范围!");} else {this.age = age;}}public String toString() {return "Girlfriend{name = " + name + ", age = " + age + "}";}
}

最后,我们的测试类中,捕获异常的时候,同样使用我们的自定义异常处理类

package com.exception;import java.util.Scanner;public class ExceptionTest {public static void main(String[] MakeFullStack) {Girlfriend girlfriend = new Girlfriend();Scanner sc = new Scanner(System.in);while (true) {try {System.out.println("请输入女朋友的姓名:");String girlName = sc.nextLine();girlfriend.setName(girlName);System.out.println("请输入女朋友年龄:");String string = sc.nextLine();int girlAge = Integer.parseInt(string);girlfriend.setAge(girlAge);break;} catch (NumberFormatException e) {System.out.println("年龄格式有误!");} catch (NameFormatException e) {// 输出自定义异常捕获到的错误信息e.printStackTrace();} catch (AgeOutOfBoundsException e) {// 输出自定义异常捕获到的错误信息e.printStackTrace();}}System.out.println(girlfriend);}
}

File

文件的路径

File 三个 构造方法

在这里插入图片描述
代码示例:
在这里插入图片描述
小结
在这里插入图片描述

File 常见方法

一、File - 判断获取方法

在这里插入图片描述

代码演示
package com.file;import java.io.File;public class FileDemo1 {public static void main(String [] MakeFullStack) {/*** File的常见成员方法(判断、获取)*/// 1. isDirectory() 判断 该路径 File 是否为文件夹File f11 = new File("E:\\MakeFullStack.txt");boolean f11Director = f11.isDirectory();System.out.println(f11Director);  // falseFile f12 = new File("E:\\MakeItPossible");boolean f12Directory = f12.isDirectory();System.out.println(f12Directory);  // trueSystem.out.println("=====================分界线=====================");// 2. isFile() 判断该路径 File 是否为文件File f21 = new File("E:\\MakeFullStack.txt");boolean f21File = f21.isFile();System.out.println(f21File);  // trueFile f22 = new File("E:\\MakeItPossible");boolean f22File = f22.isFile();System.out.println(f22File);  // falseSystem.out.println("=====================分界线=====================");// 3. exists () 判断该 路径 File 是否存在File f31 = new File("E:\\MakeFullStack.txt");boolean f31Exists = f31.exists();System.out.println(f31Exists); // trueFile f32 = new File("E:\\MakeItPossible");boolean f32Exists = f32.exists();System.out.println(f32Exists);  // trueSystem.out.println("=====================分界线=====================");// 4. length() 返回文件的大小(字节数量)File f41 = new File("E:\\MakeFullStack.txt");long f41Length = f41.length();System.out.println(f41Length);  //  13File f42 = new File("E:\\MakeFullStack");long f42Length = f42.length();System.out.println(f42Length);  //  0System.out.println("=====================分界线=====================");// 5. getAbsolutePath() 返回文件的绝对路径File f51 = new File("E:\\MakeFullStack.txt");String f51Path = f51.getAbsolutePath();System.out.println(f51Path);  // E:\MakeFullStack.txtFile f52 = new File("E:\\MakeItPossible");String f52Path = f52.getAbsolutePath();System.out.println(f52Path);  // E:\MakeItPossibleSystem.out.println("=====================分界线=====================");// 6. getPath() 返回文件使用的路径File f61 = new File("E:\\MakeFullStack.txt");String f61Path = f61.getPath();System.out.println(f61Path);  // E:\MakeFullStack.txtFile f62 = new File("E:\\MakeItPossible");String f62Path = f62.getPath();System.out.println(f62Path);  // E:\MakeItPossibleSystem.out.println("=====================分界线=====================");// 7. getName() 返回文件的名称,带后缀File f71 = new File("E:\\MakeFullStack.txt");String f71Name = f71.getName();System.out.println(f71Name);  // MakeFullStack.txtFile f72 = new File("E:\\MakeItPossible");String f72Name = f72.getName();System.out.println(f72Name);  // MakeItPossible (这是个文件,没以后后缀)System.out.println("=====================分界线=====================");// 8. lastModified() 返回文件最后的修改时间(时间戳毫秒)File f81 = new File("E:\\MakeFullStack.txt");long f81LatsTime = f81.lastModified();System.out.println(f81LatsTime);  // 1714669081566System.out.println("=====================分界线=====================");}
}

二、File - 创建和删除方法

在这里插入图片描述

代码示例
package com.file;import java.io.File;
import java.io.IOException;public class FileDemo2 {public static void main(String[] MakeFullStack) throws IOException {/*** File 的常见成员方法(创建、删除)*/// 1. createNewFile() 创建一个新的空文件夹File f1 = new File("E:\\MakeCode.txt");boolean newFile = f1.createNewFile();System.out.println(newFile);  // trueSystem.out.println("============================================");// 2. mkdir() 创建单级文件夹File f2 = new File("E:\\aaa");boolean mkdir = f2.mkdir();System.out.println(mkdir);  // trueSystem.out.println("============================================");// 3. mkdirs() 创建多级文件夹File f3 = new File("E:\\BBB\\CCC");boolean mkdirs = f3.mkdirs();System.out.println(mkdirs);   // trueSystem.out.println("============================================");// 4. delete() 删除文件、空文件夹File f4 = new File("E:\\aaa");boolean delete = f4.delete();System.out.println(delete);  // trueFile f5 = new File("E:\\MakeCode");boolean delete1 = f5.delete();System.out.println(delete1);  // true}
}

三、File - 获取并遍历

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

File - 综合练习

练习一、

在这里插入图片描述

练习二、

在这里插入图片描述
在这里插入图片描述

练习三、

在这里插入图片描述
在这里插入图片描述

练习四、

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

练习五、

  • 统计一个文件夹总大小
    在这里插入图片描述

在这里插入图片描述

练习六、

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/670460.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaEE 初阶篇-深入了解 Junit 单元测试框架和 Java 中的反射机制(使用反射做一个简易版框架)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 Junit 单元测试框架概述 1.1 使用 Junit 框架进行测试业务代码 1.2 Junit 单元测试框架的常用注解&#xff08;Junit 4.xxx 版本&#xff09; 2.0 反射概述 2.1 获…

corefBERT论文阅读

CorefBERT是清华大学团队发表的&#xff0c;继SpanBERT之后另一针对共指消解的BERT模型。共指消解任务对于文本理解、智能问答等其他NLP子任务起到至关重要的作用。 为了提高语言模型的共指推理能力&#xff0c;一个简单的解决方案是使用有监督的共指解析数据在bert等模型进行…

嵌入式学习——C语言基础——day14

1. 共用体 1.1 定义 union 共用名 { 数据类型1 成员变量1; 数据类型2 成员变量2; 数据类型3 成员变量3; .. }; 1.2 共用体和结构体的区别 1. 结构体每个成员变量空间独立 2. 共用体每个成员变量空间共享 1.3 判断内存大小端 1. 内存大端…

大数据在互联网领域的“九大”应用

当下越来越多的应用涉及到大数据&#xff0c;而这些大数据的属性&#xff0c;包括数量&#xff0c;速度&#xff0c;多样性等等都呈现出大数据不断增长的复杂性&#xff0c;所以大数据的分析方法在大数据领域就显得尤为重要&#xff0c;目前互联网大数据运用的九大领域&#xf…

4个可将 iPhone iPad iPod 修复至正常状态的 iOS 系统恢复软件

许多iOS用户对操作系统问题感到恐慌&#xff0c;例如iPhone卡在恢复模式、白屏死机、黑屏死机、iOS系统损坏、iTunes连接屏幕、iPhone数据丢失等。这些状态通常很无聊&#xff0c;因为您无法使用 iPhone 执行任何操作。 4个可将 iPhone iPad iPod 修复至正常状态的 iOS 系统恢复…

7-zip下载、安装

7-Zip 官方中文网站 (sparanoid.com) 7-Zip - 程序下载 (sparanoid.com)

直播预告|第一批 Vision Pro 开发者开始弃坑了吗? 本周六一起听听三位 XR 开发者的真实想法!

随着技术的进步&#xff0c;扩展现实&#xff08;XR&#xff09;行业正在迅速发展&#xff0c;成为连接现实与虚拟世界的桥梁。XR 技术&#xff0c;包括虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;和混合现实&#xff08;MR&#xff09;&#xff…

4. RedHat认证-进程管理

4. RedHat认证-进程管理 1.进程概念 进程就是正在运行中的程序或者命令 每一个进程都是运行的实体&#xff0c;都有自己的地址空间&#xff0c;并占有一定的资源空间 程序消耗的是磁盘资源、进程消耗的是内存和CPU资源 进程会占用四类资源&#xff08;CPU 、内存、磁盘、网…

GEE错误——image.reduceRegion is not a function

简介 image.reduceRegion is not a function 这里的主要问题是我们进行地统计分析的时候&#xff0c;我们的作用对象必须是单景影像&#xff0c;而不是影像集合 错误"image.reduceRegion is not a function" 表示你正在尝试使用reduceRegion()函数来处理图像数据&…

电销卡与电话管家是什么

防封电销卡是啥&#xff1f; 也许有的人并不是很清晰&#xff0c;实际上防封电销卡也是电销业务流程运用避免封号的一种手机卡&#xff0c;它的作用实际上跟一般的用号码卡语音通话是类似的&#xff0c;唯独不一样的是防封电销卡是加入白名单的&#xff0c;让电销业务在开展的过…

使用C#和EF Core实现高效的SQL批量插入

在软件开发中&#xff0c;批量插入数据是一个常见的需求&#xff0c;特别是在数据迁移、初始化数据库或进行大量数据处理时。Entity Framework Core (EF Core) 是一个流行的.NET对象关系映射器&#xff08;ORM&#xff09;&#xff0c;它简化了数据库操作&#xff0c;但在进行大…

C语言知识点补充——ASCLL码表

1、ASCLL码表 ASCII码表&#xff08;American Standard Code for Information Interchange&#xff09;是一种用于将字符编码为数字的标准。它定义了128个字符的编码方式&#xff0c;包括数字、字母、标点符号和控制字符等。每个字符都对应一个唯一的7位或8位二进制数 2、Ascl…