以前对异常一点也不陌生,但是看完Thinking In Java这一张厚才发现,异常其实是非常复杂的玩意,涉及到java内存的堆栈的查找,程序的中断等等,可见一斑,下面贴上代码,好好研究一下异常,可谓是JAVa的精华啊
package com.bird.thinking;
class MyException extends Exception {// 自己写的异常类,有两个构造方法
private static final long serialVersionUID = 1L;
public MyException() {
}
public MyException(String msg) {
super(msg);
}
}
public class FullConstructots {
/**
* @PAT throws是用来声明一个方法可能抛出的所有异常信息 throw则是指抛出的一个具体的异常类型。
* 通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。
* throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法;
* throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛出。
* @param args
* @author bird
*/
public static void f() throws MyException {//调用不带参数的异常构造函数
System.out.println("Throwing MyException from f()");
throw new MyException();
}
public static void g() throws MyException{//调用带参数的异常构造函数
System.out.println("Throws MyEception from g()");
throw new MyException("OH My God in g()");
}
public static void main(String[] args) {
try{
f();
}catch(MyException e){
e.printStackTrace(System.out);
}
try{
g();
}catch(MyException e){
e.printStackTrace(System.out);
}
}
}
输出结果
Throwing MyException from f()
com.bird.thinking.MyException
at com.bird.thinking.FullConstructots.f(FullConstructots.java:27)
at com.bird.thinking.FullConstructots.main(FullConstructots.java:37)
Throws MyEception from g()
com.bird.thinking.MyException: OH My God in g()
at com.bird.thinking.FullConstructots.g(FullConstructots.java:32)
at com.bird.thinking.FullConstructots.main(FullConstructots.java:44)
下面的是将异常记录到日志中的更加正规的方法汇总
package com.bird.thinking;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.logging.Logger;
class LoggingExceptions extends Exception{//使用异常记录日志中,更加规范
private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger("LoggingException");
public LoggingExceptions(){
StringWriter trace = new StringWriter();
printStackTrace(new PrintWriter(trace));
logger.severe(trace.toString());
}
}
public class LoggingException {//使用java.util.logging工具将输出记录到日志中
/**
* @param args
* @author bird
*/
public static void main(String[] args) {
try{
throw new LoggingExceptions();
}catch(LoggingExceptions e){
System.err.println("Caughy"+ e);//最好使用错误流去输出异常,这样也是更加规范
}
}
}
输出结果
2011-10-2 21:54:33 com.bird.thinking.LoggingExceptions <init>
严重: com.bird.thinking.LoggingExceptions
at com.bird.thinking.LoggingException.main(LoggingException.java:26)
Caughycom.bird.thinking.LoggingExceptions
看清楚,亲,是红色的哦,亲,不是我自己加的,在Eclipse中运行就是红色,好好看看错误输出流,呵呵。
分享到:
相关推荐
总的来说,《Thinking in Java》第四版的源码是一份宝贵的资源,它将书中的理论知识具体化,为Java开发者提供了实践和探索的平台。通过深入研究这份源码,不仅可以巩固和拓展Java技能,也能提升对软件工程整体理解的...
总之,这份《Thinking in Java》的源码资源是Java学习者的宝贵财富,它将帮助我们深入理解Java,提升编程能力,无论是在职业道路上还是个人兴趣上,都是值得投入时间去探索的。让我们一起秃头,一起进步吧!
### 《Thinking in Java》核心知识点解析 #### 一、书籍概述 《Thinking in Java》是一本被广泛赞誉为优秀的Java编程入门与进阶指南。本书由Bruce Eckel撰写,MindView, Inc.总裁,拥有丰富的编程经验和教学经验。...
《Thinking in Java》是Bruce Eckel创作的一本Java编程经典教程,尤其以其第一版闻名于世。这本书深入浅出地介绍了Java语言的核心概念和技术,旨在帮助读者建立起对Java的全面理解,培养良好的编程思维习惯。作为一...
《Thinking in Java》是Java编程领域的一本经典著作,由Bruce Eckel撰写,深受程序员喜爱。这本书深入浅出地介绍了Java语言的核心概念和技术,旨在帮助读者建立起扎实的面向对象编程思维。以下是对这本书中关键知识...
《Thinking in Java 4th Edition》是一本深受程序员喜爱的经典Java教程,由Bruce Eckel撰写。这本书深入浅出地介绍了Java编程语言的核心概念和技术,包括面向对象编程、泛型、集合框架、网络编程、多线程等。源码是...
### 高清英文版《Thinking in Java》知识点解析 #### 一、书籍基本信息与评价概览 《Thinking in Java》是一本由Bruce Eckel撰写的关于Java编程的经典教材,本书为第四版。作为MindView公司的总裁,作者不仅拥有...
《Thinking in Java》不仅仅是一本技术书籍,它更像是一位经验丰富的导师,引导着每一位读者探索Java编程世界的奥秘。无论是为了通过专业认证,还是为了个人兴趣和职业发展,这本书都是不可或缺的学习资源。正如读者...
《Thinking in Java》是Bruce Eckel的经典之作,它是一本深度探索Java编程语言的书籍,深受全球程序员喜爱。这本书不仅适合初学者,也适合有一定经验的开发者深入理解Java的精髓。书中涵盖了Java语言的各个方面,从...
《Thinking in Java》是Java编程领域的一本经典著作,由Bruce Eckel撰写,中文译名为《深入理解Java》。这本书以其全面、深入和细致的讲解,深受Java开发者喜爱,是学习和进阶Java技术的重要参考书籍。其内容覆盖了...
`thinking_in_java-master.zip`这个压缩文件很可能是该书的源代码或者配套练习代码的集合,方便读者实践和探索书中所讲解的内容。 在深入探讨《Thinking in Java》中的知识点之前,我们先了解一下Java语言的基础。...
### 《Thinking in Java》第四版核心知识点概览 #### 一、书籍概述与价值 《Thinking in Java》第四版是一本经典的Java编程教材,由Bruce Eckel编写,旨在为具有一定Java基础的学习者提供深入的学习资源。本书内容...
《Thinking in Java(英文原版第4版)》作为一本经典Java编程思想书籍,其内容涵盖了面向对象的叙述方式,并针对Java SE5/6版本新增了示例和章节。本书适合作为初学者的入门教材,同时也包含了足够的深度,适合专业...
### Thinking in Java: 核心思想与关键技术解析 #### 标题解读:《Thinking in Java》 本书名为《Thinking in Java》,意味着它不仅仅是一本教授Java语法的技术书籍,更是引导读者深入理解Java语言的设计理念、...
### 《Thinking in Java 第四版》:Java学习的经典指南 #### 书籍概述 《Thinking in Java 第四版》是作者布鲁斯·埃克尔(Bruce Eckel)编写的一本经典Java教程。作为一本深入浅出、内容丰富的编程书籍,它自问世...
通过这个源码包,你可以跟随《Thinking in Java》第四版的章节,逐个探索和实践每一个主题,加深对Java编程的理解,提升编程技能。同时,这也是一个很好的自我测试和复习工具,你可以尝试修改代码,观察不同行为,...
《Thinking in Java》是Bruce Eckel的经典之作,它深入浅出地介绍了Java编程语言的核心概念和技术。这本书的第四版更是经过了全面的更新,涵盖了Java SE 5.0及之后的许多新特性。本资源提供了该书练习题的答案,帮助...
总之,《Thinking in Java》第四版是一部涵盖Java编程语言所有重要方面的综合指南,它不仅仅是一本教科书,更是一位引领你进入Java世界并不断探索的良师益友。无论是作为自学的教材,还是作为专业开发者的参考书,这...