javaSE-异常

本文介绍了Java程序中异常的基本概念,强调了异常处理的重要性,包括如何通过try-catch块捕获和处理异常,以及如何避免代码过于臃肿。同时,文章探讨了自定义异常的创建步骤和适用场景,指出在特定情况下自定义异常能更好地满足需求。最后,提到了异常处理的最佳实践,如详细输出异常信息和合理使用异常层次结构。

一、什么叫做异常

1、异常的定义

异常:
 *       在程序运行过程中,出现的不正常情况叫做异常
 *
 *       注意:
 *           1、相同的代码在运行的时候,根据输入的参数或者操作的不同,有可能会发生异常,有可能不会发生异常
 *               应该在写代码的过程中尽可能的保证代码的正确性,不要到处都bug
 *           2、如果要解决代码中出现的异常,需要添加非常复杂的代码逻辑来进行判断,会使代码变得非常臃肿,不利于维护,可读性比较差
 *               因此,推荐大家使用异常机制来处理程序运行过程中出现的问题
 *           3、程序在运行过程中如果出现了问题,会导致后面的代码无法正常执行,而使用异常机制之后,可以对异常情况进行处理
 *              同时后续的代码会继续执行,不会中断整个程序
 *           4、在异常的处理过程中,不要只是简单的输出错误,要尽可能的将详细的异常信息进行输出
 *                  e.printStackTrace():打印异常的堆栈信息,可以从异常信息的最后一行开始追踪,寻找自己编写的java类
 *
 *      异常处理的方式:
 *          1、捕获异常
 *              try{可能出现异常的代码逻辑}catch(Exception e){异常处理逻辑}
 *              try{可能出现异常的代码逻辑}catch(具体的异常Exception e){异常处理逻辑}catch(具体的异常):
 *                    可以针对每一种具体的异常做相应的更丰富的处理
 *                      注意:当使用多重的catch的时候一定要注意相关异常的顺序,将子类放在最前面的catch,父类放在后面的catch
 *              执行过程中可能存在的情况:
 *                  1、正常执行,只执行try中的代码
 *                  2、遇到异常情况,会处理try中异常代码之前的逻辑,后面的逻辑不会执行,最后会执行catch中的代码
 *                  3、使用多重catch的时候,会遇到异常子类不匹配的情况,此时依然会报错,因此建议在catch的最后将所有的异常的父类(Exception)写上
 *InputMismatchException   参数不匹配异常
 * ArithmeticException      数学异常

二、异常的种类

1、自定义异常

自定义异常:
 *       在java的api中提供了非常丰富的异常类,但是在某些情况下不太满足我们的需求,此时需要自定义异常
 *       步骤:
 *           1、继承Exception类
 *           2、自定义实现构造方法
 *           3、需要使用的时候,使用throw new 自定义异常的名称;
 *       什么时候需要自定义异常?
 *           一般情况下不需要
 *           但是在公司要求明确,或者要求异常格式规范统一的时候是必须要自己实现的

2、抛出异常

 3、声明异常

 

 

由于给定引用中未提及“javase - 3.4.1 - SNAPSHOT - jar - with - dependencies.jar”的相关内容,下面基于常见的 Java JAR 文件的情况来介绍。 ### 介绍 “javase - 3.4.1 - SNAPSHOT - jar - with - dependencies.jar”是一个 Java 归档文件(JAR),文件名中的“SNAPSHOT”表示这是一个快照版本,通常用于开发阶段,意味着它可能是不稳定的、正在开发中的版本。“with - dependencies”表明这个 JAR 文件包含了项目运行所需的所有依赖项,这样在使用时就不需要额外引入其他依赖库。 ### 下载 - **Maven 仓库**:如果该 JAR 文件是通过 Maven 管理的项目生成的,可在项目的 `target` 目录下找到它。若需要从 Maven 仓库下载,需要在 `pom.xml` 文件中添加对应的依赖配置,示例如下: ```xml <dependency> <groupId>对应组 ID</groupId> <artifactId>javase</artifactId> <version>3.4.1 - SNAPSHOT</version> </dependency> ``` 然后使用 `mvn clean install` 命令进行下载。 - **手动下载**:如果该 JAR 文件发布在某个特定的网站或服务器上,可以通过浏览器访问该链接进行手动下载。 ### 使用 - **命令行运行**:若该 JAR 文件包含可执行的主类,可以使用以下命令运行: ```bash java -jar javase - 3.4.1 - SNAPSHOT - jar - with - dependencies.jar ``` - **作为依赖引入项目**:在开发 Java 项目时,可以将该 JAR 文件添加到项目的类路径中。如果使用 IDE(如 IntelliJ IDEA),可以在项目的依赖设置中添加该 JAR 文件。 ### 常见问题及排查 - **ClassNotFoundException**:当运行 JAR 文件时出现该异常,可能是 JAR 文件中的类路径配置有误,或者依赖项缺失。可以检查 `MANIFEST.MF` 文件中的 `Class - Path` 配置,确保所有依赖项都正确包含。 - **版本冲突**:如果项目中引入了多个版本的相同依赖库,可能会导致版本冲突。可以使用 `mvn dependency:tree` 命令查看项目的依赖树,排查冲突的依赖项并进行解决。 - **内存溢出**:若运行过程中出现内存溢出错误(OutOfMemoryError),可以通过调整 Java 虚拟机的堆内存大小来解决,例如: ```bash java -Xmx512m -jar javase - 3.4.1 - SNAPSHOT - jar - with - dependencies.jar ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值