java 19 - 3 JDK7针对多个异常的处理方式

 1 /*
 2   JDK7出现了一个新的异常处理方案:
 3           try{
 4
 5           }catch(异常名1 | 异常名2 | ...  变量 ) {
 6               ...
 7           }
 8    如果编译期异常,又不知道异常名,就跟进看源码,那里面就能找到
 9     注意:这个方法虽然简洁,但是也不够好。
10              A:处理方式是一致的。(实际开发中,好多时候可能就是针对同类型的问题,给出同一个处理)
11              B:多个异常间必须是平级关系。
12  */
13 public class ExceptionDemo3 {
14     public static void main(String[] args) {
15         method();
16     }
17
18     public static void method() {
19         int a = 10;
20         int b = 0;
21         int[] arr = { 1, 2, 3 };
22
23         // try {
24         // System.out.println(a / b);
25         // System.out.println(arr[3]);
26         // System.out.println("这里出现了一个异常,你不太清楚是谁,该怎么办呢?");
27         // } catch (ArithmeticException e) {
28         // System.out.println("除数不能为0");
29         // } catch (ArrayIndexOutOfBoundsException e) {
30         // System.out.println("你访问了不该的访问的索引");
31         // } catch (Exception e) {
32         // System.out.println("出问题了");
33         // }
34
35         // JDK7的处理方案
36         try {
37             System.out.println(a / b);
38             System.out.println(arr[3]);
39         } catch (ArithmeticException | ArrayIndexOutOfBoundsException e) {
40             System.out.println("出问题了");
41         }
42
43         System.out.println("over");
44     }
45
46 }
时间: 2024-10-12 23:36:11

java 19 - 3 JDK7针对多个异常的处理方式的相关文章

异常-JDK7针对多个异常的处理方案

1 package cn.itcast_02; 2 3 /* 4 * JDK7出现了一个新的异常处理方案: 5 * try{ 6 * 7 * }catch(异常名1 | 异常名2 | ... 变量 ) { 8 * ... 9 * } 10 * 11 * 注意:这个方法虽然简洁,但是也不够好. 12 * A:处理方式是一致的.(实际开发中,好多时候可能就是针对同类型的问题,给出同一个处理) 13 * B:多个异常间必须是平级关系. 14 */ 15 public class ExceptionDe

jdk7 中Collections.sort 异常

Collections.sort 异常 java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeHi(TimSort.java:868) at java.util.TimSort.mergeAt(TimSort.java:485) at java.util.TimSort.mergeForceCollapse(TimSort.jav

java.sql.SQLException: Column 'class' not found.异常没有找到列

1 /**处理当个对象的 ,rs中要么有一条,要么一条没有. 2 * @param <T> 3 */ 4 public class BeanHandler<T> implements ResultSetHandler<T> { 5 private Class<T> type; 6 public BeanHandler(Class<T> type){ 7 this.type = type; 8 } 9 /**将rs->T t 10 */ 11

Hibernate卡住,然后报错java.sql.SQLException: Unknown system variable &#39;language&#39;异常

启动应用的时候会卡在: 08:22:58,221 DEBUG IntegratorServiceImpl:46 - Adding Integrator [org.hibernate.cfg.beanvalidation.BeanValidationIntegrator]. 08:22:58,226 DEBUG IntegratorServiceImpl:46 - Adding Integrator [org.hibernate.secure.spi.JaccIntegrator]. 08:22:

Java内存区域与模拟内存区域异常

我把Java的内存区域画了一张思维导图,以及各区域的主要功能. 模拟Java堆溢出 Java堆用于存储对象实例,只要不断地创建对象并且保证GC ROOTS到对象之间有可达路径避免被回收机制清除,就可以模拟出Java堆溢出. package hxl.insist.jvm; import java.util.ArrayList; import java.util.List; /** * 下面是JVM Args: * -Xms20m 堆的最小值 -Xmx20m 堆的最小值 (设置为一样可避免堆自动扩展

我的Java开发学习之旅------&gt;Java NIO 报java.nio.charset.MalformedInputException: Input length = 1异常

今天在使用Java NIO的Channel和Buffer进行文件操作时候,报了java.nio.charset.MalformedInputException: Input length = 1异常,具体如下: java.nio.charset.MalformedInputException: Input length = 1 at java.nio.charset.CoderResult.throwException(CoderResult.java:260) at java.nio.char

19、Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition

Java并发编程:线程间协作的两种方式:wait.notify.notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作.比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权.因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让队列有空间,那么生产者就会一直无限等待下去.因此,一般情况下,当队列满时,会让生产者交出对

编写高质量代码改善java程序的151个建议——[110-117]异常及Web项目中异常处理

原创地址:http://www.cnblogs.com/Alandre/(泥沙砖瓦浆木匠),需要转载的,保留下! 文章宗旨:Talk is cheap show me the code. 大成若缺,其用不弊.大盈若冲,其用不穷.  <道德经-老子>最完满的东西,好似有残缺一样,但它的作用永远不会衰竭:最充盈的东西,好似是空虚一样,但是它的作用是不会穷尽的 Written In The Font 摘要: 异常处理概述 学习内容: 建议110: 提倡异常封装 建议111: 采用异常链传递异常 建议

Java内存存放区域与内存溢出异常(一)

**Java内存存放区域与内存溢出异常(一)** Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有着各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖于用户进程的启动和结束而建立和销毁,java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图一. 1.在这里先介绍程序计数器 程序计数器(Program Counter Register)是一块内存较小的内存空间,它的作用可以看作是当 前线程所执行的字节码的