Java-异常、File

1.异常

1.1异常定义

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

Throwable异常包括Error和Exception

Error异常代表的是系统级别的错误,属于严重问题。系统一旦出现问题,孙公司会把这些错误封装成Error对象。

Exception:叫做异常,代表程序可能出现的问题。我们通常会用Exception以及其他子类来封装程序出现的问题。

运行时异常:RunTimeException及其子类、编译阶段不会出现异常提醒,运行时出现的异常。

编译时异常:编译阶段就会出现异常提醒。

1.2异常的作用

1)异常时用来查询bug的关键参考信息

2)异常可以作为方法内部的一致特殊返回值,以便通知调用者底层的执行情况

1.3异常的处理方式

1)JVM默认处理

把异常的名称

2)自己处理(捕获异常)

格式:可以让程序继续往下执行,不会停止

try{

可能出现异常的代码;

}catch(异常类型 变量名){

异常处理代码;

}finally{

finally里面的代码一定会被执行,除非虚拟机停止;

}

3)抛出异常

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

public void 方法() throws 异常类名1,异常类名2...{}

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

1.4Throwable的成员方法

printStackTrace,底层通过System.err.println以红色字体输出异常的错误信息。只打印错误信息,不会停止程序运行

1.5自定义异常

1)定义异常关系

2)写继承关系

3)空参构造

4)带参构造

意义:为了让控制台的报错信息更加见名知意

2.File

2.1File的定义

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

2.2File的成员方法

1)判断、获取

length:返回文件的大小(字节数量)。这个方法只能获取文件的大小,单位是字节,如果单位是M或G可以不断除以1024。这个方法无法获取文件夹的大小。

getName:对于文件,返回的是文件名+后缀名,对于文件夹只返回文件夹的名字

2)创建、删除

createNewFile细节:

--创建一个新的空的文件,如果当前路径表示的文件是不存在的,则创建成功,方法返回true,如果当前路径是存在的,则创建失败,返回false。

--如果父级路径是不存在的,那么方法会有异常IOException。

--创建出来的一定是文件,如果路径中没有写后缀名,那么创建出来的是一个没有后缀名的文件。

mkdir细节:只能创建单级文件夹,无法创建多级文件夹。

mkdirs细节:既可以创建单级文件夹又可以创建多级文件夹

delete方法默认只能删除文件和空文件夹,会直接将东西删除不走回收站

3)获取和遍历

细节:

1)当调用者File表示的路径不存在时或者不是文件时,返回null

2)当调用者File表示的路径时一个空文件夹时,返回一个长度为0的数组

3)当调用者File表示的路径时应该有内容的文件夹时,将里面所有的文件和文件夹的路径放在File数组中返回

4)当调用者File表示的路径时应该有隐藏文件的文件夹时,将里面所有的文件和文件夹的路径放在File数组中返回,包含隐藏文件夹

5)当调用者File表示的路径时需要权限才能访问文件夹时,返回null

相关推荐
2601_962071574 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
zww89491114 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·eclipse
淡海水5 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
CS_Zero6 小时前
C语言sizeof是函数吗?
c语言·开发语言
-今昭-7 小时前
《V2V 迁移实战:将 VMware 虚拟机转为 OpenStack 可用 Glance qcow2 镜像》
开发语言·python
zww89491117 小时前
匿名树洞系统开发实战:从需求分析到部署指南
java·eclipse
黑马程序员毕设8 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
木井巳8 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
白山编程大哥9 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
_Twink1e9 小时前
openJiuwen 实训营 Day 1 · WorkSwarm 入门教程
开发语言·c++·openjiuwen