一,异常的概念 :异常是程序运行期出现的错误。
二,异常的分类:a,
三,异常的捕获和处理
理解一下五个关键字: throw throws try catch finally
try{ 可能发生异常的代码 }catch(Exception e){ 对异常捕获处理的代码}finally{ 可以写一些对资源的关闭的代码}
throw 对自己能够处理的异常,后面跟一个异常对象,在处理的时候抛出自定义的异常的做法。 catch (Exception e) {throw ApplicationException("系统发生故障,请联系管理员!!!");}
throws 对自己不能够处理或者不想处理的异常抛出的做法,是写在方法后面的。 eg:public void ReadFromFile() throws IOException {......}
throw vs throws :
throw:是手动的往外抛 。
thorws是调用方法的时候自动往外抛出异常的做法(声明异常)。
理解e.printStackTrace() 打印错误的堆栈信息。
使用自定义的异常,然后在程序里面调用的做法。
package Exception; public class MyException extends Exception { public MyException() { super(); } public MyException(String arg0, Throwable arg1) { super(arg0, arg1); } public MyException(String arg0) { super(arg0); } public MyException(Throwable arg0) { super(arg0); } } package Exception; /** * 登记学生人数的小例子。 * 用自定义的异常的做法。 * @author Administrator * */ public class TestException { public void register(int num) throws MyException{ if(num<0){ throw new MyException("学生人数为负值,不合理"); } System.out.println("要登记的学生人数是:"+num); } public void manager (){ try { register(-5); } catch (MyException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { TestException te = new TestException(); te.manager(); } }
方法重写声明式异常的原则:子类声明的异常范围不能超过父类声明的范围。
a,父类没有声明异常,子类也不能声明异常。
重写Thread的run()方法的时候可以加深理解,不能抛出不是从RuntimeException继承的异常
b,不可以抛出原有方法抛出的异常类的父类或上层类。
c,抛出异常类型的数目不可比原有方法抛出的还多(不是指个数)。
重写方法需要抛出与原方法异常类型一致的异常或者不抛出异常(抛范围大了不行,抛少范围小了也不行)
在一个web 项目中写一个自定义的异常一定是从RuntimeException继承而来的。比如ApplicationException
、DBException等。
在Web项目中catch块中处理异常标准的做法是:a,日志记录、b,将异常信息抛出到界面。
logger.error(ExceptionUtils.getStackTrace(exception)); serviceResult.setMessage(ExceptionUtils.getStackTrace(exception));
千万不能在catch 块中吞并异常,如果吞并了异常后期定位真正的异常会很麻烦。
异常的使用建议
a,避免使用异常处理代替错误处理,这样会降低程序的清晰性,并且效率低下。
比如登录时帐号名或密码不对,不能单独定义一种帐号或者密码不对的异常,然后在逻辑块
写try catch抛出这种异常。
b,处理异常不可以代替简单测试,只在异常情况下使用异常机制。
c,不要进行小粒度的异常处理,应该将整个任务包在一个Try语句块中。
d,异常往往在高层处理。
相关推荐
### Java异常详解 #### 1. `java.lang.NullPointerException` `NullPointerException`是当程序尝试访问一个为`null`的对象实例的字段、调用其方法或构造函数时抛出的异常。这种异常通常发生在程序员错误地假设某个...
Java异常Exception类及其子类是Java语言中异常处理的核心部分。异常是指程序在执行过程中出现的非正常情况,例如除数为零、数组索引越界、类型转换错误等。Java语言所有的异常都可以用一个类来表示,不同类型的异常...
### Java异常处理详解 #### 一、异常处理概述 异常处理是Java编程语言中的一个重要机制,用于处理程序执行过程中可能出现的错误。通过合理地管理异常,开发者能够使程序更加健壮,提高系统的稳定性和可用性。 ###...
自定义异常是在Java中通过继承`java.lang.Throwable`或其子类(如`Exception`或`Error`)来实现的。通常,我们选择继承`Exception`类,因为它用于表示程序可以恢复的错误,而`Error`则用于表示系统级的严重问题,...
Java 异常处理习题 Java 异常处理是 Java 编程语言中的一种重要机制,用于处理程序在运行时可能出现的错误或异常情况。下面是关于 Java 异常处理的习题和知识点总结: 一、Java 异常处理关键字 * Java 中用来抛出...
Java 异常详解 Java 异常是指在程序运行中出现的违背指定正常流向的事件。异常可以分为两大类:-checked 异常和 unchecked 异常。Checked 异常必须在编译时捕捉并处理,而 unchecked 异常可以在编译时忽略,但是在...
在这个“java 异常 问题收集 Exception”主题中,我们将深入探讨Java异常处理的基本概念、常用类以及最佳实践。 1. 异常的概念与分类: Java中的异常是程序运行时出现的不正常情况,通常会导致程序中断。Java将...
### Java中的异常处理详解 #### 一、异常基础概述 在Java编程中,异常处理是一项重要的机制,用于处理运行过程中可能发生的错误情况。通过合理的异常处理,可以显著提高程序的健壮性和可用性。 ##### 1. 异常概念...
Java 异常的对象来自两个来源:一是 Java 语言本身定义的一些基本异常类型,二是用户通过继承 Exception 类或者其子类自己定义的异常。异常的对象可以是 Java 运行时环境自动抛出的系统生成的异常,也可以是程序员...
Java 异常机制包括 Error、Exception、检查异常、运行时异常、异常处理和 throws 关键字等几个方面。 Error 是 Java 异常机制中的基类,表示编译时或者系统错误,例如虚拟机相关的错误、系统崩溃等。Error 无法恢复...
Java异常处理是编程中至关重要的一个环节,它用于在程序执行过程中处理错误和不正常的情况。异常(Exception)是程序运行时出现的问题,不同于逻辑错误,逻辑错误在编译阶段就能发现,而异常则通常在运行时才会暴露...
Java异常处理是编程中至关重要的一个部分,它用于在程序运行时处理错误和不寻常的情况。在Java中,异常是一种事件,它中断了程序的正常流程。Java异常处理提供了五种关键字来帮助开发者有效地管理异常:`try`, `...
Java异常处理是编程中至关重要的一个环节,它关乎程序的健壮性和稳定性。在Java中,异常(Exception)被用来表示程序运行时发生的错误或不正常情况。异常并不等同于错误,它是程序设计的一部分,允许我们优雅地处理...
总的来说,`ArithmeticException`是Java中常见的运行时异常之一,通过合理的异常处理和输入验证,我们可以避免这类异常的发生,提高程序的健壮性。理解并妥善处理这种异常对于编写稳定且可靠的Java程序至关重要。
java异常练习题,北大青鸟学士后课后练习,主要是异常处理的小测验
Java异常处理是Java编程语言中的一个关键特性,它允许程序员优雅地处理程序运行时出现的错误情况,确保程序的稳定性和可靠性。这份“Java异常学习资料”包含了丰富的资源,帮助你深入理解Java异常机制,提升代码质量...
Java异常是程序运行时出现的错误情况,它中断了正常的代码执行流程。在Java编程中,异常处理是一项关键技能,因为它允许程序员优雅地处理错误,防止程序崩溃,并提供有用的反馈信息。异常通常由异常类表示,这些类...
1、JDK的安装和环境变里的配置 2. HelloWorld程序 3、JAVA的数据类型及...17、JAVA异常Exception 18、JAVA线程之基础介绍 19、I0流之基本简介 20、I0流之字符流、字节流、转换流、缓冲流、对象流 21,I0流之HIO
这篇博文“Java异常框架设计”可能探讨了如何有效地利用Java的异常处理机制来构建可靠的系统。在这个讨论中,我们将深入理解Java异常的基本概念、异常分类、以及如何通过良好的框架设计提升代码的可读性和可维护性。...