Java(17)异常

一.异常

1.1程序执行过程中出现的影响程序运行正常运行的现象.

 1.2异常语法

try{

//代码块

}catch(异常类型 e){

}catch(异常类型 e){

}...{

}finally{

注意:try:表示可能出现异常的代码块

catch:抓取异常,并进行处理

可能抓取多个异常,异常范围要从小到大抓取

并且只会执行第一个匹配的异常类型

finally:最后的,不管是否出现异常,finally中的代码一直会执行,除非虚拟机(syatem.exit(1)这个情况外)

使用if结构:

 1 public class Text1 {
 2     /*
 3      * 1.什么是异常? 定义:异常是程序在执行时发生的事件,它会打断指令的正常流程。
 4      */
 5     public static void main(String[] args){
 6         Scanner input = new Scanner(System.in);
 7         System.out.println("请输入被除数");
 8         int num = 0;
 9         if(input.hasNextInt()){
10             num = input.nextInt();
11         }else{
12             System.out.println("输入的被除数不是整数,程序退出");
13             System.exit(1);
14         }
15         System.out.println("请输入除数");
16         int num1 = 0;
17         if(input.hasNextInt()){
18             num1 = input.nextInt();
19             if(0==num1){
20                 System.out.println("输入的除数是0,程序退出");
21                 System.exit(1);
22             }
23         }else{
24             System.out.println("输入的除数不是整数,程序退出");
25             System.exit(1);
26         }
27         System.out.println(String.format("%d/%d =%d",num,num1,num/num1));
28         System.out.println("感谢使用本程序");
29
30     }
31 }

示例1

运行结果为:       

使用try-catch- finally:

 1 //使用 try catch finally处理异常
 2 public class Test2 {
 3     public static void main(String[] args) {
 4         Scanner input = new Scanner(System.in);
 5         System.out.println("请输入被除数");
 6         try {
 7             int num = input.nextInt();
 8             System.out.println("请输入除数");
 9             int num1 = input.nextInt();
10             System.out.println(String.format("%d/%d =%d", num, num1, num / num1));
11         } catch (Exception e) {
12             System.err.println("出现错误,被除数和除数必须是整数," + "除数不能为零");
13             System.out.println(e.getMessage());
14             //err是运行期异常和错误反馈的输出流的方向,但它只能在屏幕上打印,即使你重定向也一样
15             //重定向就是通过各种方法将各种网络请求重新定个方向转到其他位置
16             //用err打印出的字符串·,再用eclipse的input会显示呈红色;
17         } finally {
18             System.out.println("感谢使用本程序!");
19         }
20     }
21 }
22 /*
23  * 如果try块中所有语句正常执行完毕,那么finally块就会执行
24  * 如果try语句块在执行过程中碰到异常,无论这种异常能否被catch块捕捉到,都将执行finally块中的代码
25  * 注意:即使在try块和catch块中存在return语句,finally块中语句也会执行
26  * 发生异常时的执行顺序:执行try块或catch中return之前的语句,执行finally块中的语句, 执行try或catch中的return语句退出
27  * finally 块中语句不被执行的唯一情况:在异常处理代码中执行System.exit(1),将退出java虚拟机
28  */

示例2

运行结果为:       

1.3 throws 声明异常

a.就是当前方法,不能解决这个异常的时候,必须把这个异常交给上一个调用的去处理

b.语法

访问修饰符 返回值类型 方法名(参数列表)[throws 异常]{}

二.java异常体系

Throwable

|--error:(出现不能通过程序处理的错误)

|--Exception:可以同程序抓取或者抛出的错误

|--检查异常(非运行时异常):编译阶段会出现的异常

SQlExceqtion,

IOException,

ClassNotFoundException

|-- 非检查异常(运行阶段异常RunTimeException):运行简单会出现的异常

NullPointerException,

ArrayIndexOutOfBoundsException,

ClassCastException

注意:cgecked异常,是必需处理的

运行时异常,可以不处理

时间: 2024-12-20 19:26:50

Java(17)异常的相关文章

Java基础——异常体系

在Java中,异常对象都是派生于Throwable类的一个实例,Java的异常体系如下图所示: 所有的异常都是由Throwable继承而来,在下一层立即分解为两个分支,Error和Exception. Error错误:描述了Java运行时系统的内部错误和资源耗尽错误.一般是指虚拟机相关的问题,如系统崩溃,虚拟机出错误等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常不处理.因为如果出现这样的内部错误,除了通告用户,并尽力使程序安全地终止之外,再也无能为力了. Exception异常:Ja

Java并发编程:Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常.下面我们就来讨论以下这个异常出现的原因以及解决办法. 以下是本文目录大纲: 一.ConcurrentModificationException异常出现的原因 二.在单线程环境下的解决办法 三.在多线程环境下的解决方法 若有不

Java入门——异常的捕获与处理

Java入门——异常的捕获与处理 在没有异常处理的语言中,通常需要大量的判断语句,配合所想到的错误来捕获程序中所有可能发生的错误.充分利用Java的异常处理机制,以增进程序的稳定性和效率. Java的异常处理机制 一旦产生异常,则首先会产生一个异常类的实例化对象. 在try语句中对此异常对象进行捕获. 产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码. finaly是异常的统一出口,一定会执行. 所有的子类实例全部可由父类接收,利用向上转型的概念

【转】Java ConcurrentModificationException异常原因和解决方法

原文网址:http://www.cnblogs.com/dolphin0520/p/3933551.html Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常.下面我们就来讨论以下这个异常出现的原因以及解决办法. 以下是本文目录大纲: 一.ConcurrentModific

八、java中异常机制

一.为什么要有异常处理机制? java中的异常处理机制简单的讲就是try..catch..finally的使用. 程序难免会出现错误, 如果没有异常处理机制, 那么程序员在编写代码的时候就必须检查特定的结果, 并在程序的很多地方去处理它. 有了异常处理机制后,就不必在每个方法调用处都检查, 只需要用try包裹住可能发生异常的代码段, 这样做的好处是: 1.降低了代码的复杂度,正如上面所说的,不需要每个方法调用处都去检查: 2.将“描述正常情况下应该做什么事情”和“如果出了错怎么办” 的逻辑分开:

java中级异常篇

一.异常 1.异常的概述 什么是异常:是程序运行过程中发生未知的事件,  该事件可以中断程序指令的正常执行流程. java中异常类的视图: 说明:Error和Exception的子类可以分为上图中的几类,并非所有子类. Throwable: Throwable 类是 Java 语言中所有错误或异常的超类.只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 throw语句抛出. Error: Error 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严

一种隐蔽性较高的Java ConcurrentModificationException异常场景

在使用Iterator遍历容器类的过程中,如果对容器的内容进行增加和删除,就会出现ConcurrentModificationException异常.该异常的分析和解决方案详见博文<Java ConcurrentModificationException 异常分析与解决方案>和<解决ArrayList的ConcurrentModificationException>.本文展示一种隐蔽性较高的ConcurrentModificationException异常场景,并给出解决方案. 代

JAVA基础——异常详解

阅读目录 一.异常简介 二.try-catch-finally语句 三.throw和throws关键字 四.java中的异常链 五.结束语 JAVA异常与异常处理详解 回到顶部 一.异常简介 什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错.在java中,阻止当前方法或作用域的情况,称之为异常. java中异常的体系是怎么样的呢? 1.Java中的所有不正常类都继承于Throwable类.Throwable主要包括两个大类,一个是Error类,另一个是Exception类: 2.其

java 编译异常及其解决办法(持续更新)

java 编译异常及其解决办法(持续更新) 1.解决办法:将jar版本降低适配 低版本的jdk或tomcat 1 严重: ContainerBase.addChild: start: 2 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/EasyGo]] 3 at org.apach