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.pswp.cn/web/91075.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91075.shtml

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

相关文章

【C++算法】74.优先级队列_最后一块石头的重量

文章目录题目链接:题目描述:解法C 算法代码:题目链接: 1046. 最后一块石头的重量 题目描述: 解法 每次取出最重的两块石头进行碰撞,将剩余的石头重新放入堆中。 C 算法代码: class Solution …

中兴云电脑W101D2-晶晨S905L3A-2G+8G-安卓9-线刷固件包

中兴云电脑W101D2-晶晨S905L3A-2G8G-WIFI-蓝牙5.0-3个USB2.0-线刷包线刷方法:1、准备好一根双公头USB线刷刷机线,长度30-50CM长度最佳,同时准备一台电脑;2、电脑上安装好刷机工具Amlogic USB Burning Tool 软件 →打开软件 →文件…

Android OkHttp 底层原理和实战完全教程(责任链模式详解)

目录 1. OkHttp 入门:从一个请求开始 1.1 基本 GET 请求:三步走 1.2 同步 vs 异步:选择你的风格 1.3 为什么选 OkHttp? 2. 配置 OkHttpClient:打造你的专属网络引擎 2.1 超时设置:别让请求卡死 2.2 添加拦截器:窥探请求全过程 2.3 缓存:让请求更快更省流量 3. …

【RK3588部署yolo】算法篇

简历描述收集并制作军事伪装目标数据集,包含真实与伪装各种类型军事目标共计60余类。其中,包含最新战场充气伪装军事装备30余类,并为每一张图片制作了详细的标注。针对军事伪装目标的特点,在YOLOv8的Backbone与Neck部分分别加…

【Spring Boot 快速入门】一、入门

目录Spring Boot 简介Web 入门Spring Boot 快速入门HTTP 协议概述请求协议响应协议解析协议TomcatSpring Boot 简介 Spring Boot 是由 Pivotal 团队(后被 VMware 收购)开发的基于 Spring 框架的开源项目,于 2014 年首次发布。其核心目标是简…

如何调整服务器的内核参数?-哈尔滨云前沿

调整服务器内核参数是一项较为专业的操作,不同的操作系统调整方式略有不同,以下以常见的 Linux 系统为例,介绍一些调整服务器内核参数的一般步骤和常用参数:一般步骤 备份当前配置:在修改内核参数之前,先备…

C++基础:模拟实现queue和stack。底层:适配器

引言模拟实现queue和stack,理解适配器,实现起来非常简单。一、适配器 适配器是一种能让原本不兼容的接口协同工作的设计模式或者组件。它的主要作用是对一个类的接口进行转换,使其符合另一个类的期望接口,进而实现适配和复用。&am…

OI 杂题

OI 杂题字符串括号匹配例 1:与之前的类似,就是讲一点技巧,但是比较乱,凑合着看吧。 字符串 括号匹配 几何意义:考虑令 ( 为 111 变换,令 ) 为 −1-1−1 变换,然后对这个 1/−11/-11/−1 构成…

【论文阅读】Safety Alignment Should Be Made More Than Just a Few Tokens Deep

Safety Alignment Should Be Made More Than Just a Few Tokens Deep原文摘要问题提出现状与漏洞:当前LLMs的安全对齐机制容易被攻破,即使是简单的攻击(如对抗性后缀攻击)或良性的微调也可能导致模型越狱。核心论点: 作…

Generative AI in Game Development

如有侵权或其他问题,欢迎留言联系更正或删除。 出处:CHI 20241. 一段话总结本研究通过对来自 Reddit 和 Facebook 群组的 3,091 条独立游戏开发者的在线帖子和评论进行定性分析,探讨了他们对生成式 AI在游戏开发中多方面作用的认知与设想。研…

【C++算法】72.队列+宽搜_二叉树的最大宽度

文章目录题目链接:题目描述:解法C 算法代码:题目链接: 662. 二叉树最大宽度 题目描述: 解法 这里的宽度指的是一层的最右边的非空节点到一层的最左边的非空节点,一共的节点数。 解法一:硬来&am…

什么是3DVR?VR技术有哪些应用场景?

VR与3D技术解析及应用在高科技领域,VR和3D是两个常被提及的名词。那么,这两者之间究竟存在着怎样的区别与联系呢?简而来说,VR技术是3D技术的一种高级延展和深化应用。3D技术,即将二维设计图转化为立体、逼真的视觉效果…

栈与队列:数据结构核心解密

栈和队列的基本 栈(Stack)是一种后进先出(LIFO, Last In First Out)的数据结构。元素的插入和删除操作只能在栈顶进行。常见的操作包括压栈(push)和弹栈(pop)。 队列(Queue)是一种先进先出(FIFO, First In First Out)的数据结构。元素的插入在队尾进行,删除在队…

《C++初阶之STL》【list容器:详解 + 实现】

【list容器:详解 实现】目录前言------------标准接口介绍------------标准模板库中的list容器是什么样的呢?1. 常见的构造2. 迭代器操作std::list::beginstd::list::endstd::list::rbeginstd::list::rend3. 容量的操作std::list::sizestd::list::empty…

【灰度实验】——图像预处理(OpenCV)

目录 1 灰度图 2 最大值法 3 平均值法 4 加权均值法 5 两个极端的灰度值 将彩色图转为灰度图地过程称为灰度化。 灰度图是单通道图像,灰度化本质就是将彩色图的三通道合并成一个通道的过程。三种合并方法:最大值法,平均值法和加权均值法…

【linux驱动开发】编译linux驱动程序报错:ERROR: Kernel configuration is invalid.

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、报错二、解决方法1.先编译linux内核源码2.再重新编译驱动程序一、报错 在编译驱动程序过程中,经常碰到的一个小问题: make -C /home/lu…

Java面试宝典:MySQL中的锁

InnoDB中锁的类型非常多,总体上可以如下分类: 这些锁都是做什么的?具体含义是什么?我们现在来一一学习。 1. 解决并发事务问题 我们已经知道事务并发执行时可能带来的各种问题。最大的一个难点是:一方面要最大程度地利用数据库的并发访问能力,另一方面又要确保每个用户…

设备识别最佳实践:四维交叉验证框架

设备识别最佳实践:四维交叉验证框架 1. MAC地址分析(40%权重) - 设备身份核验 核心方法: # MAC地址标准化(OUI提取) mac"B4:2E:99:FB:9D:78" oui$(echo $mac | tr -d : | cut -c 1-6 | tr a-f A-…

《Java 程序设计》第 9 章 - 内部类、枚举和注解

大家好,今天我们来学习《Java 程序设计》第 9 章的内容 —— 内部类、枚举和注解。这三个知识点是 Java 中提升代码灵活性和可读性的重要工具,在实际开发中非常常用。接下来我们逐一展开讲解,每个知识点都会配上可直接运行的代码示例&#xf…

CTF Misc入门篇

在CTF比赛中,misc方向是必考的一个方向,其中,图形隐写是最最常见的类型。 先从Misc开始入门,一般会借助CTF SHOW解题平台,解题,然后进行技巧总结。 目录 图片篇(基础操作) misc1 misc2 misc3 misc4 …