`

java 异常(Exception)

    博客分类:
  • j2se
阅读更多

一,异常的概念 :异常是程序运行期出现的错误。

二,异常的分类: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异常exception

    ### Java异常详解 #### 1. `java.lang.NullPointerException` `NullPointerException`是当程序尝试访问一个为`null`的对象实例的字段、调用其方法或构造函数时抛出的异常。这种异常通常发生在程序员错误地假设某个...

    Java异常 Exception类及其子类(实例讲解)

    Java异常Exception类及其子类是Java语言中异常处理的核心部分。异常是指程序在执行过程中出现的非正常情况,例如除数为零、数组索引越界、类型转换错误等。Java语言所有的异常都可以用一个类来表示,不同类型的异常...

    java异常 exception

    ### Java异常处理详解 #### 一、异常处理概述 异常处理是Java编程语言中的一个重要机制,用于处理程序执行过程中可能出现的错误。通过合理地管理异常,开发者能够使程序更加健壮,提高系统的稳定性和可用性。 ###...

    JAVA 自定义异常 Exception

    自定义异常是在Java中通过继承`java.lang.Throwable`或其子类(如`Exception`或`Error`)来实现的。通常,我们选择继承`Exception`类,因为它用于表示程序可以恢复的错误,而`Error`则用于表示系统级的严重问题,...

    高效的java异常处理框架高效的java异常处理框架高效的java异常处理框架

    在 Java API 中已经定义了许多异常类,这些异常类分为两大类,错误 Error 和异常 Exception。Java 异常体系结构呈树状,其层次结构图如图 1 所示: 图 1 Java 异常体系结构 Throwable 类是所有异常和错误的超类,...

    java异常处理习题

    Java 异常处理习题 Java 异常处理是 Java 编程语言中的一种重要机制,用于处理程序在运行时可能出现的错误或异常情况。下面是关于 Java 异常处理的习题和知识点总结: 一、Java 异常处理关键字 * Java 中用来抛出...

    java 异常详解,java异常分类,创建自己的异常

    Java 异常详解 Java 异常是指在程序运行中出现的违背指定正常流向的事件。异常可以分为两大类:-checked 异常和 unchecked 异常。Checked 异常必须在编译时捕捉并处理,而 unchecked 异常可以在编译时忽略,但是在...

    java 异常 问题收集 Exception

    在这个“java 异常 问题收集 Exception”主题中,我们将深入探讨Java异常处理的基本概念、常用类以及最佳实践。 1. 异常的概念与分类: Java中的异常是程序运行时出现的不正常情况,通常会导致程序中断。Java将...

    java Exception

    ### Java中的异常处理详解 #### 一、异常基础概述 在Java编程中,异常处理是一项重要的机制,用于处理运行过程中可能发生的错误情况。通过合理的异常处理,可以显著提高程序的健壮性和可用性。 ##### 1. 异常概念...

    java异常机制小结

    Java 异常的对象来自两个来源:一是 Java 语言本身定义的一些基本异常类型,二是用户通过继承 Exception 类或者其子类自己定义的异常。异常的对象可以是 Java 运行时环境自动抛出的系统生成的异常,也可以是程序员...

    深入理解java异常(异常中的Error+异常中的Exception+检查异常+运行时异常+异常处理+throws关键字等)

    Java 异常机制包括 Error、Exception、检查异常、运行时异常、异常处理和 throws 关键字等几个方面。 Error 是 Java 异常机制中的基类,表示编译时或者系统错误,例如虚拟机相关的错误、系统崩溃等。Error 无法恢复...

    Java exception_java_

    Java异常处理是编程中至关重要的一个环节,它用于在程序执行过程中处理错误和不正常的情况。异常(Exception)是程序运行时出现的问题,不同于逻辑错误,逻辑错误在编译阶段就能发现,而异常则通常在运行时才会暴露...

    javaException_JAVA源码_

    Java异常处理是编程中至关重要的一个部分,它用于在程序运行时处理错误和不寻常的情况。在Java中,异常是一种事件,它中断了程序的正常流程。Java异常处理提供了五种关键字来帮助开发者有效地管理异常:`try`, `...

    java异常 异常的概念 应用

    Java异常处理是编程中至关重要的一个环节,它关乎程序的健壮性和稳定性。在Java中,异常(Exception)被用来表示程序运行时发生的错误或不正常情况。异常并不等同于错误,它是程序设计的一部分,允许我们优雅地处理...

    java 除0发生的算术异常(ArithmeticException)

    总的来说,`ArithmeticException`是Java中常见的运行时异常之一,通过合理的异常处理和输入验证,我们可以避免这类异常的发生,提高程序的健壮性。理解并妥善处理这种异常对于编写稳定且可靠的Java程序至关重要。

    java异常处理练习题

    java异常练习题,北大青鸟学士后课后练习,主要是异常处理的小测验

    Java异常学习资料

    Java异常处理是Java编程语言中的一个关键特性,它允许程序员优雅地处理程序运行时出现的错误情况,确保程序的稳定性和可靠性。这份“Java异常学习资料”包含了丰富的资源,帮助你深入理解Java异常机制,提升代码质量...

    java exception

    Java异常是程序运行时出现的错误情况,它中断了正常的代码执行流程。在Java编程中,异常处理是一项关键技能,因为它允许程序员优雅地处理错误,防止程序崩溃,并提供有用的反馈信息。异常通常由异常类表示,这些类...

    JAVA SE 开发手册.CHM

    1、JDK的安装和环境变里的配置 2. HelloWorld程序 3、JAVA的数据类型及...17、JAVA异常Exception 18、JAVA线程之基础介绍 19、I0流之基本简介 20、I0流之字符流、字节流、转换流、缓冲流、对象流 21,I0流之HIO

Global site tag (gtag.js) - Google Analytics