- 浏览: 188371 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
1. Java中exception异常
2. 自定义exception异常
Java中的异常分为两大类: 1) Checkedexception(非RuntimeException) 2) Uncheckedexception(RuntimeException) Java中所有的异常类都会直接或间接地继承Exception父类。 public class ExceptionTest { public static void main(String[] args) { int c = 0; try { int a = 3; int b = 0; c = a / b; System.out.println("hello world"); } catch (ArithmeticException e) { e.printStackTrace(); } finally{ System.out.println("welcome"); } System.out.println(c); } } 运行结果: java.lang.ArithmeticException: / by zero at test10.ExceptionTest.main(ExceptionTest.java:9) welcome 0 可以自己抛出异常throw new Exception() public class Exception2 { public void method() throws Exception{ System.out.println("hello world"); throw new Exception(); } public static void main(String[] args) { Exception2 test = new Exception2(); try { test.method(); } catch (Exception e) { e.printStackTrace(); } finally{ System.out.println("in the end"); } } } 运行结果: hello world java.lang.Exception at test10.Exception2.method(Exception2.java:6) at test10.Exception2.main(Exception2.java:11) in the end 对于非运行时异常(checkedexception),必须要对其进行处理,处理方式有两种:第一种是使用try..catch…finally进行捕获;第二种是在调用该会产生异常的方法所在的方法声明throwsException。 对于运行时异常(runtime exception),我们可以不对其进行处理,也可以对其进行处理。推荐不对其进行处理。 public class Exception3 { public static void main(String[] args) { String str = null; System.out.println(str.length()); } } 运行结果: Exception in thread "main" java.lang.NullPointerException at test10.Exception3.main(Exception3.java:6)
2. 自定义exception异常
public class MyException extends Exception{ public MyException() { super(); } public MyException(String message){ super(message); } } public class ExceptionTest4 { public void method(String str) throws Exception{ if (null == str) { throw new MyException("传入的字符串参数不能为null"); } else if ("hello".equals(str)) { throw new MyException2("传入的字符串不能为hello"); } else { System.out.println(str); } } public static void main(String[] args){ try { ExceptionTest4 test = new ExceptionTest4(); test.method("hello"); } catch(MyException e){ System.out.println("进入到MyException catch块"); e.printStackTrace(); } catch(MyException2 e){ System.out.println("进入到MyException2 catch块"); e.printStackTrace(); } catch(Exception e){ System.out.println("进入到Exception catch块"); e.printStackTrace(); } finally{ System.out.println("异常处理完毕"); } System.out.println("程序执行完毕"); } } 运行结果: 进入到MyException2 catch块 test11.MyException2: 传入的字符串不能为hello at test11.ExceptionTest4.method(ExceptionTest4.java:9) at test11.ExceptionTest4.main(ExceptionTest4.java:19) 异常处理完毕 程序执行完毕 "hello".equals(str)如果str为null,判断结果返回false; Str.equals(“hello”)如果str为null,会抛出空指针异常; exception异常处理可以有多个catch块,但是运行时只能进入一个catch块。 我们可以使用多个catch块来捕获异常,这时需要将父类型的catch块放到子类型的catch块之后,这样才能保证后续的catch可能被执行,否则子类型的catch将永远无法到达,Java编译器会报编译错误;如果多个catch块的异常类型是独立的(MyException,MyException2),那么谁前谁后都是可以的。 如果try块中存在return语句,那么首先也需要将finally块中的代码执行完毕,然后方法再返回。 public class MyException2 extends Exception{ public MyException2(){ super(); } public MyException2(String message){ super(message); } } public class ExceptionTest5 { public void method(){ try { System.out.println("进入到try块"); // 表示退出不执行后面代码 System.exit(0); } catch (Exception e) { System.out.println("异常发生了"); } finally{ System.out.println("进入到finally块"); } System.out.println("异常处理后续的代码"); } public static void main(String[] args) { ExceptionTest5 test = new ExceptionTest5(); test.method(); } } 运行结果: 进入到try块
发表评论
-
Java中获取IP地址、子网掩码、网关地址
2019-06-26 10:53 01. Java中获取IP地址、子网掩码、网关地址、ping连通 ... -
Java中ThreadLocal
2019-04-19 10:44 01. Java中ThreadLocal Java中的Th ... -
Java中原子性锁synchronized、Lock
2019-04-18 15:19 01. synchronized依赖JVM 1) 修饰代码 ... -
Java中原子性Atomic
2019-04-18 14:45 01. Atomic包简介 java.util.concu ... -
开发常用链接
2019-03-26 11:21 0在线工具:http://tool.oschina.net/ ... -
java1234学习目录
2019-03-21 11:08 01-01-01 N01 J2SEv2(41课时) ... -
Java中TCP和UDP
2018-10-25 10:55 3411. 网页内容获取 Url1.java impor ... -
Java中Thread线程
2018-10-25 09:38 3861. 实现线程的两种方式 1. 继承Thread类并重写 ... -
Java中serializable序列化
2018-10-24 14:46 4711. 序列化 transient不会被序列化。 imp ... -
Java中CharSet集
2018-10-24 11:31 5391. CharSet集 import java.nio. ... -
Java中RandomAccessFile类
2018-10-24 11:30 4991. RandomAccessFile类 1. 使用Ra ... -
Java中I/O的字符流InputStreamReader和OutputStreamWriter
2018-10-22 09:43 4381. InputStreamReader和OutputStre ... -
Java中其它输入输出流
2018-10-22 09:08 4671. ByteArrayInputStream流 以ar ... -
Java中I/O的OutputStream流
2018-10-22 08:54 4841. Java中I/O的OutputStream流 1. ... -
Java中I/O的InputStream流
2018-10-22 08:42 4611. Java中I/O的InputStream流 1. ... -
Java中I/O的File类
2018-10-19 13:45 4301. Java中I/O的File类 1. 在window ... -
Java中innerClass内部类
2018-10-18 09:37 4351. Java中innerClass内部类 用AA.BB ... -
Java中adapter适配器
2018-10-18 08:36 5811. Java中adapter适配器 适配器adapte ... -
Java中awt包
2018-10-17 11:26 17061. Java中awt包 AWT事件模型Event 1 ... -
Java中frame对象
2018-10-17 10:56 6681. Java中frame对象 1. Frame对象 ...
相关推荐
1. `ArithmeticException`:当计算中出现除以零、非法运算等错误时,会抛出此类异常。 2. `ArrayIndexOutOfBoundsException`:当尝试访问数组的索引超出了数组的实际长度时,会抛出此类异常。 3. `...
### Java中的异常处理详解 #### 一、异常基础概述 在Java编程中,异常处理是一项重要的机制,用于处理运行过程中可能发生的错误情况。通过合理的异常处理,可以显著提高程序的健壮性和可用性。 ##### 1. 异常概念...
自定义异常是在Java中通过继承`java.lang.Throwable`或其子类(如`Exception`或`Error`)来实现的。通常,我们选择继承`Exception`类,因为它用于表示程序可以恢复的错误,而`Error`则用于表示系统级的严重问题,...
Exception 是 Java 异常机制中的另一个基类,分为检查异常和运行时异常两种。检查异常是编译器在编译时强制要求处理的异常,例如 IO 操作、ClassNotFoundException、线程操作等。运行时异常是编译器不强制要求处理的...
总的来说,`ArithmeticException`是Java中常见的运行时异常之一,通过合理的异常处理和输入验证,我们可以避免这类异常的发生,提高程序的健壮性。理解并妥善处理这种异常对于编写稳定且可靠的Java程序至关重要。
### JAVA中常见的异常知识点详解 #### 一、`java.lang.NullPointerException` 在Java编程中,`java.lang.NullPointerException`(简称NPE)是最常见的异常之一。这种异常通常发生在尝试访问一个空对象引用的方法或...
Java异常处理是编程中至关重要的一个环节,它用于在程序执行过程中处理错误和不正常的情况。异常(Exception)是程序运行时出现的问题,不同于逻辑错误,逻辑错误在编译阶段就能发现,而异常则通常在运行时才会暴露...
异常(Exception)是Java中一种特殊类型的对象,它表示程序运行过程中发生的错误或非正常情况。Java通过异常类来表示不同的异常情况,这些类位于`java.lang.Throwable`类及其子类层次结构中。异常类通常分为两种主要...
在这个“java 异常 问题收集 Exception”主题中,我们将深入探讨Java异常处理的基本概念、常用类以及最佳实践。 1. 异常的概念与分类: Java中的异常是程序运行时出现的不正常情况,通常会导致程序中断。Java将...
例如,如果你在Java项目中引用了一个外部库中的类,但在运行时类路径中未包含该库,那么就会触发此类异常。为了防止此类异常的发生,开发人员应该确保所有的依赖都被正确地添加到了项目的类路径中。 #### 3. `java....
当一个异常在处理另一个异常的过程中被抛出时,原始异常(即“原因”)会被保存,并可在捕获的异常中访问。 此外,`Exception`类有两个重要的子类:`RuntimeException`和`Error`。`RuntimeException`是所有非检查型...
Java异常处理是编程中至关重要的一个部分,它用于在程序运行时处理错误和不寻常的情况。在Java中,异常是一种事件,它中断了程序的正常流程。Java异常处理提供了五种关键字来帮助开发者有效地管理异常:`try`, `...
除了基本的异常处理,Java还提供了异常链(Exception Chaining),允许一个异常实例引用另一个异常,这样可以保留更详细的错误信息。还有`assert`关键字,用于在开发阶段进行断言检查,确保代码的正确性。 总之,...
Java 异常处理是 Java 编程语言中的一种重要机制,用于处理程序在运行时可能出现的错误或异常情况。下面是关于 Java 异常处理的习题和知识点总结: 一、Java 异常处理关键字 * Java 中用来抛出异常的关键字是 `...
在Java中,异常分为两种主要类型:运行时异常(RuntimeException)和编译时异常(Checked Exception)。运行时异常通常由程序逻辑错误引起,如除零错误、空指针引用等,它们在程序运行时才会被抛出。编译时异常则是...
在Java中,异常主要分为两大类:`Error` 和 `Exception`,它们都继承自 `Throwable` 类。 - **编译时错误**:这类错误通常在编译期间就能被发现,如语法错误。 - **运行时错误**:这些错误往往在程序执行过程中出现...
在Java编程中,异常处理(Exception Handling)是确保程序健壮性的重要机制。它允许程序员在遇到错误情况时,能够优雅地处理问题而不是让程序突然崩溃。本项目中,"JAVA Exception Handling & UI Design" 涉及了如何...
Java 异常是指在程序运行中出现的违背指定正常流向的事件。异常可以分为两大类:-checked 异常和 unchecked 异常。Checked 异常必须在编译时捕捉并处理,而 unchecked 异常可以在编译时忽略,但是在运行时总是会被抛...
Java中常用异常列表 异常是Java程序中的一种错误处理机制,用于捕获和处理运行时错误。在Java中,异常可以分为两大类:checked异常和unchecked异常。checked异常是编译器强制检查的异常,unchecked异常是运行时异常...
Java中的异常体系主要分为两大类:`Error` 和 `Exception`。 - **Error**:通常表示系统级的错误,例如内存不足等,这类问题程序员通常无法避免,也不应该去处理。 - **Exception**:表示可以通过程序设计来避免或...