当前位置: 首页 > ds >正文

Java中的异常判断以及文件中的常用方法及功能

目录

异常

作用

异常的处理方式

JVM(虚拟机)默认的处理方式

自己处理(捕获异常)

抛出异常(也就是交给调用者处理)

自定义异常

file

File中常见成员方法

判断和获取

创建和删除 

 获取并遍历


 

异常

异常就是代表程序出现的问题。

异常在java.lang.Throwable这个包里,包含Error异常和Exception异常。

Error:代表的系统级别错误(属于严重问题)
系统一旦出现问题,sun公司会把这些错误封装成Error对象。
Error是给sun公司自己用的,不是给我们程序员用的。
因此我们开发人员不用管它。

Exception:叫做异常,代表程序可能出现的问题。
我们通常会用Exception以及他的子类来封装程序出现的问题。
运行时异常:RuntimeException及其子类,编译阶段不会出现异常提醒。
运行时出现的异常(如:数组索引越界异常)
其他异常(也就是编译时异常):编译阶段就会出现异常提醒的。(如:日期解析异常)没有继承RuntimeExcpetion的异常,直接继承于Excpetion。编译阶段如果编译错误就会有错误提示

异常体系的最上层父类是Exception,并且异常分为两类:编译时异常、运行时异常

作用

1、是用来查询bug的关键参考信息。

2、可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况。如下:

之前写法:

现在:

 

age赋值-2,运行main方法,控制台输出 :

异常的处理方式

JVM(虚拟机)默认的处理方式

把异常的名称,异常原因以及异常出现的位置等信息输出在了控制台。

程序停止执行,下面的代码不会再执行了。

自己处理(捕获异常)

主要目的:当代码出现异常时,可以让代码继续往下执行。

格式:

try{可能出现异常的代码;}catch(异常类名  变量名){异常处理的代码;}

如果try中没有遇到问题,把try里面所有的代码执行完,并且往后执行,但是不会执行catch里面的代码。

如果try中可能会遇到多个问题,在try里面,执行遇到的第一个问题就会创建它对应的异常对象,try后面的代码就不会执行了,直接把这个创建的异常对象与catch里面作比较。

如果try中可能会遇到多个问题,我们也会写多个catch与之对应,如果这些异常存在父子关系,那么父类一定要写在下面。(比如Exception与ArithmeticException就是父类子类的关系)

控制台输出:

如果try中遇到的问题没有被捕获,相当于try...catch代码没有任何作用和没写一样,就是把当前创建的异常对象交给虚拟机默认处理(异常处理方式的第一种方式)。

异常的常用方法:

对于以上catch中的异常处理我只写了一个输出语句,但是这样是不规范的。

Throwable的成员方法:
public String getMessage():返回此 throwable 的详细消息字符串(异常简短信息)
public String toString():返回此可抛出的简短描述(异常简短信息以及异常名字)

public void printStackTrace():把异常的错误信息输出在控制台(异常简短信息以及异常名字以及异常出现的位置)(最常用)

ctrl+Alt+t快捷键idea自动生成。

抛出异常(也就是交给调用者处理)

主要目的:告诉调用者出错了

throws:写在方法定义处,表示声明一个异常,告诉调用者,使用本方法可能会有哪些异常。(如果是编译时的异常那么必须要写,如果是运行时异常那么可以不写)

throw:写在方法内,表示结束方法;手动抛出异常对象,把异常对象交给调用者,方法中下面的代码不再执行了。

自定义异常

主要目的:为了让控制台的报错信息更加见名知意。

1、定义异常类

2、写继承关系(如果定义的是运行时的异常继承RuntimeException,但是如果是编译时的异常直接继承Exception)

3、空参构造和带参构造

Alt+insert在idea自动生成

file

文件保存的位置:路径(file)

file对象就表示一个路径,可以是文件的路径、也可以是文件夹的路径。

这个路径可以是存在的,也允许是不存在的。

public File(String pathname):根据文件路径创建文件对象
public File(String parent, String child):根据父路径名字符串和子路径名字符串创建文件对象
public File(File parent, String child):根据父路径对应文件对象和子路径名字符串创建文件对象

 

相对路径:不带盘符,默认到当前项目下去找。是相对当前项目下的路径

绝对路径:带盘符

File中常见成员方法

判断和获取

public boolean isDirectory():判断此路径名表示的File是否为文件夹
public boolean isFile():判断此路径名表示的File是否为文件
public boolean exists):判断此路径名表示的File是否存在
public long length():返回文件的大小(字节数量,只能获取文件的大小)
public String getAbsolutePath():返回文件的绝对路径
public String getPath():返回定义文件时使用的路径
public String getName():返回文件的名称,带后缀(如果调用者是文件夹,那么返回的就是文件夹的名字)
public long lastModified():返回文件的最后修改时间(时间毫秒值)

这里说一个idea的快捷键:如果在idea要改变一个变量的名称,并且用这个变量的所有变量,都要改为改变之后的变量名那么就用shift+F6来改变。

在这个文件的属性我们可以看见大小为21个字节,1字节=8bit,而这个文件的内容是:我们都应该坚持,说明一个汉字占三个字节24个比特位。 

 

创建和删除 

public boolean createNewFile():创建一个新的空的文件(创建的一定是个文件,如果没有后缀,那么创建的文件也没有后缀,反正不可能创建文件夹)
public boolean mkdir():创建单级文件夹
public boolean mkdirs():创建多级文件夹,同时也能创建单级文件夹,所以mkdir方法不常用
public boolean delete():删除文件空文件夹(删除不会经过回收站,直接删)

 获取并遍历

public File[] listFiles():获取当前该路径下所有内容。

当调用者File表示的路径不存在时,返回null
当调用者File表示的路径是文件时,返回null
当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组
当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
当调用者File表示的路径是需要权限才能访问的文件夹时,返回null

http://www.xdnf.cn/news/16693.html

相关文章:

  • Django-environ 入门教程
  • 镜像源加速下载
  • 在WSL中配置VS Code C++开发环境完整教程
  • linux中简易云盘系统项目实战:基于 TCP协议的 Socket 通信、json数据交换、MD5文件区别与多用户文件管理实现
  • 《C++初阶之STL》【list容器:详解 + 实现】
  • 低速信号设计之 UART 篇
  • 鸿蒙网络编程系列59-仓颉版TLS回声服务器示例
  • 如何迁移gitlab到另一台服务器
  • 图像认知与OpenCV | Day5:图像预处理(4)
  • C++20协程实战:高效网络库、手机终端、多媒体开发开发指南
  • Javaweb - 13 - AJAX
  • Qt|槽函数耗时操作阻塞主界面问题
  • Chrome 提示 “此扩展程序不再受支持”(MacOS/Windows)
  • WindowsAPI|每天了解几个winAPI接口之网络配置相关文档Iphlpapi.h详细分析六
  • C++异常捕获:为何推荐按引用(by reference)捕获?
  • 华为昇腾芯片:多模态模型国产化的硬核突破
  • Ext JS极速项目之 Coworkee
  • ETH 交易流程深度技术详解
  • Linux进程概念(五)进程地址空间
  • 凸优化:凸函数的一些常用性质
  • 低成本嵌入式Linux开发方案:通过配置文件实现参数设置
  • 基于黑马教程——微服务架构解析(二):雪崩防护+分布式事务
  • 如何在 Ubuntu 24.04 或 22.04 Linux 上安装和使用 NoMachine
  • JavaScript 回调函数讲解_callback
  • 力扣7:整数反转
  • golang--通道和锁
  • 做了一款小而美的本地校验器
  • jimfs:Java内存文件系统,脱离磁盘IO瓶颈利器
  • 使用Docker在Rocky Linux 9.5上在线部署LangFlow
  • 【力扣热题100】哈希——两数之和