package cn.jbit.exception; import java.util.InputMismatchException; import java.util.Scanner; /** * 测试类 * * @author kyaccp * */ public class Test { /** * 程序入口 * * @param args * 输入参数 */ public static void main(String[] args) { Scanner input = new Scanner(System.in); try { // 捕获 异常 System.out.print("请输入课程代号(1~3之间的数字):"); int num = input.nextInt(); // 课程编号 switch (num) { case 1: System.out.println("C#编程"); break; case 2: System.out.println("Java编程"); break; case 3: System.out.println("SQL基础"); break; default: System.out.println("请输入(1~3之间的数字!)"); } // 异常处理 } catch (InputMismatchException e) { System.err.println("输入的数字必须是整数。"); e.printStackTrace(); } catch (Exception e) { System.err.println("程序正在缓冲,请稍等!"); } finally { System.out.println("谢谢查询!"); } } }
效果图:
package cn.jbit.exception; import java.util.InputMismatchException; import java.util.Scanner; import org.apache.log4j.Logger; /** * 测试类 * * @author chaoyi * @2013-10-25 */ public class ArithmeticTest { /** * 实例化控件类 */ static Logger logger = Logger.getLogger(ArithmeticTest.class.getName()); /** * 程序入口 * * @param args */ public static void main(String[] args) { Scanner input = new Scanner(System.in); try { // 捕获异常 System.out.print("请输入被除数:"); int num1 = input.nextInt(); logger.debug("请输入被除数:" + num1); System.out.print("请输入除数:"); int num2 = input.nextInt(); logger.debug("请输入除数:" + num2); System.out.println(String.format("%d/%d=%d", num1, num2, num1 / num2)); logger.debug(String.format("输出运算结果是:%d/%d=%d", num1, num2, num1 / num2)); // return; //finnally语句仍旧会执行 // 处理异常 } catch (InputMismatchException e) { logger.error("出现错误:被除数和除数必须是整数。", e); } catch (ArithmeticException e) { logger.error("出现错误:除数不能为零。", e); } catch (Exception e) { logger.error(e.getMessage()); // return; //finnally语句仍旧会执行 } finally { System.out.println("感谢使用本程序!"); } } }
效果图:
Java的异常处理是通过五个关键字来实现的:try、catch、finally、throw和throws,下面将依次学习。
try-catch块
try-catch-finally块
多重catch块
声明异常——throws
抛出异常——throw
常用的异常类型
异常
|
说明
|
Exception
|
异常层次结构的根类
|
ArithmeticException
|
算术错误情形,如以零作除数
|
ArrayIndexOutOfBoundsException
|
数组下标越界
|
NullPointerException
|
尝试访问null对象成员
|
ClassNotFoundException
|
不能加载所需的类
|
InputMismatchException
|
欲得到的数据类型与实际输入的类型不匹配
|
IllegalArgumentException
|
方法接收到非法参数
|
ClassCastException
|
对象强制类型转换出错
|
NumberFormatException
|
数字格式转换异常,如把“abc”转换成数字
|
throw和throws的区别表现在以下三个方面。
作用不同:throw用于程序员自行产生并抛出异常,throws用于声明在该方法内抛出了异常。
使用的位置不同:throw位于方法体内部,可以作为单独语句使用。throws必须跟在方法参数列表的后面,不能单独使用。
内容不同:throw抛出一个异常对象,而且只能是一个。throws后面跟异常类,而且可以跟多个异常类。
Throwable类:所有异常类型都是Trowable类的子类,它派生两个子类:Error和Exception。
Error类:表示仅靠程序本身无法恢复的严重错误,比如说内存溢出动态链接失败,虚拟机错误。应用程序不应该抛出这种 类型的对象(一般是由虚拟机抛出)。假如出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以在进行 程序设计,应该更关注Exception类。
Exception类:由Java应用程序抛出和处理的非严重错误,比如所需文件找不到、网络连接不通或中断、算术运算错误(如 被零除)、数组下标越界、装载了一个不存在的类、对null对象操作、类型转换异常等。它的各种不同的子类分别对应不同类型 的异常。
运行时异常:包括RuntimeException及其所有子类。不要求程序必须对它们做出处理。
Checked异常(非运行时异常):除了运行时异常外的其他由Exception继承来的异常类。程序类必须捕获或者声明抛出这 种异常,否则会出现编译错误,无法通过编译。处理方式包括两种:通过try-catch在当前位置捕获并处理异常,通过throws声 明抛出异常交给上一级调用方法处理。
异常是由Java应用程序抛出和处理的非严重错误,它可以分为Checked异常和运行时异常两大类。
Checked异常必须捕获或者声明抛出,否则无法通过编译。运行时异常不要求必须捕获或者声明抛出。
Java的异常处理是通过五个关键词来实现的:try、catch、finally、throw和throws。
即使在try块、catch块存在return语句,finally块中语句也会执行。finally块中语句不执行的唯一情况是:在异常处理 代码中执行System.exit(1)。
可以在一个try语句块后面跟多个catch语句块,分别处理不同的异常。但排列顺序必须是从特殊到一般,最后一个一般都 是Exception类。
log4j是一个优秀的日志记录工具。常用使用方式是配置log4j.properties文件,从而控制日志的输出级别,控制日志的目 的地和控制日志输出格式。
个人E-mail:chaoyi77@163.com
相关推荐
【标题】:“Spring异常处理共5页.pdf” 这个标题表明我们即将探讨的是关于Spring框架中的异常处理机制。Spring作为Java企业级应用开发的主流框架,其异常处理是开发者必须掌握的关键技能之一。在Spring中,异常...
5. 异常的处理:在实际编程中,遇到异常时需要根据具体情况决定如何处理。如果异常可以通过修改代码或增加逻辑来避免的,则应该采取相应措施预防;如果无法避免,可以通过throw语句抛出异常,或者在方法签名中使用...
5. 异常预防:通过对异常原因的深入理解,制定预防措施,以降低未来异常发生的概率。这可能包括优化系统设计、增强监控能力、改善运维流程等。 异常分析是异常管理的核心,它需要结合业务需求、系统架构和故障模式...
5. 异常抛出: 当方法内部无法处理某个异常时,可以通过throw关键字抛出异常。在Java中,异常可以通过throws关键字在方法签名中声明,告知调用者该方法可能会抛出哪些类型的异常。 6. 异常处理的控制流: 异常处理...
Java 的异常处理是通过 5 个关键字来实现的:try、catch、finally、throw、throws。捕获异常、执行可能产生异常的代码、捕获异常、手动抛出异常、声明异常。 8. 异常处理块的一般形式 try{ // 要监控错误的代码...
5. 异常发生后,生产组长可以根据异常停产时间,逐级提报异常处理进度,直到董事长。 在处理异常问题时,需要遵守以下职责分工: * SMT 生产:按照文件规 X 对异常板进行处理,提供信息收集表异常产品生产相关信息...
基于 YOLOv5 的异常行为检测系统可以用于监控视频流或图像序列,检测其中的异常行为或事件。YOLOv5 是一种目标检测算法,可以快速准确地检测图像中的多个对象。结合异常行为检测算法,可以实现对异常行为的检测和...
5. 异常处理结构 Java异常处理结构包括try、catch和finally三个基本代码块。 - try块用于包裹可能会抛出异常的代码段。 - catch块用于捕获try块中抛出的异常,可以有多个catch块来捕获不同类型的异常。 - finally块...
5. 异常处理机制不仅仅适合于处理“灾难性的”事件,普通的错误处理也可以用异常机制来处理。但是,如果将其滥用的话,可能造成程序结构混乱。 6. 异常处理机制可以使程序更脆弱,然而这也是使程序更坚强的第一步。...
5. 异常传播:在多层调用的环境中,模块可能会实现异常向上层函数或主程序传播的功能,这样整个程序都可以有机会处理这个异常,而不只是局部的函数。 6. 异常恢复:为了保证程序的正常运行,模块可能还包括了异常...
5. 使用 throws 关键字声明方法可能抛出的异常。 6. 避免空指针异常(NullPointerException)和其他常见错误。 7. 异常处理的最佳实践,以优化J2ME应用程序的性能。 通过学习这个教程,开发者不仅可以掌握J2ME的...
5. 异常的层次结构: Java的异常都继承自java.lang.Throwable类,其中又分为Error和Exception两个主要子类。Error通常表示系统级别的错误,如虚拟机错误,而Exception是程序中可预见的错误,是我们通常需要捕获和...
5. 异常处理机制的实现 异常处理机制的实现需要使用try-catch-finally语句,并在catch块中捕获异常,并进行相应的处理。finally块中可以包含资源释放、日志记录等操作。 6. 编程题解析 编程题要求编写一个异常类...
【标题】:“本科毕业设计-基于YOLOv5的异常行为检测” 这个毕业设计项目主要聚焦于使用YOLOv5模型进行异常行为检测,这是一种在计算机视觉领域广泛应用的技术,尤其在安全监控、智能视频分析等领域有着重要价值。...
5.系统异常
Java编程中异常处理的方法和技巧研究 Java编程中异常处理是一...5. 异常处理技巧和方法 通过本文的研究和讨论,我们希望能够帮助Java开发人员更好地理解和掌握Java中的异常处理机制和技术,提高程序的质量和可靠性。
#### 5. 异常处理的关键字 Java中的异常处理涉及到五个关键字:`try`、`catch`、`finally`、`throw`、`throws`。 - **throw**:用于方法内部抛出一个指定的异常对象,结束当前方法的执行。 - **throws**:在方法...
#### 5. 异常处理的最佳实践 - **避免使用空检查**:尽可能避免使用空值检查,因为这可能会导致`NullPointerException`。 - **使用适当的异常类型**:确保抛出的异常类型与实际发生的错误相匹配。 - **记录异常**:...
5. 异常流量的分类与识别: 异常流量可以根据其复杂度被分为一般无效流量(SIVT)和复杂无效流量(Sophisticated Invalid Traffic,SIVT)。SIVT是指可以通过常规方法,如名单过滤或标准化参数等方式识别的无效流量...