`
BradyZhu
  • 浏览: 261265 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

异常的探索-Thinking in java

 
阅读更多

以前对异常一点也不陌生,但是看完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 第四版 源码

    总的来说,《Thinking in Java》第四版的源码是一份宝贵的资源,它将书中的理论知识具体化,为Java开发者提供了实践和探索的平台。通过深入研究这份源码,不仅可以巩固和拓展Java技能,也能提升对软件工程整体理解的...

    Thinking In Java 源码

    总之,这份《Thinking in Java》的源码资源是Java学习者的宝贵财富,它将帮助我们深入理解Java,提升编程能力,无论是在职业道路上还是个人兴趣上,都是值得投入时间去探索的。让我们一起秃头,一起进步吧!

    thinking-in-java

    ### 《Thinking in Java》核心知识点解析 #### 一、书籍概述 《Thinking in Java》是一本被广泛赞誉为优秀的Java编程入门与进阶指南。本书由Bruce Eckel撰写,MindView, Inc.总裁,拥有丰富的编程经验和教学经验。...

    Thinking in Java(第一版)

    《Thinking in Java》是Bruce Eckel创作的一本Java编程经典教程,尤其以其第一版闻名于世。这本书深入浅出地介绍了Java语言的核心概念和技术,旨在帮助读者建立起对Java的全面理解,培养良好的编程思维习惯。作为一...

    《thinking in java》电子版

    《Thinking in Java》是Java编程领域的一本经典著作,由Bruce Eckel撰写,深受程序员喜爱。这本书深入浅出地介绍了Java语言的核心概念和技术,旨在帮助读者建立起扎实的面向对象编程思维。以下是对这本书中关键知识...

    Thinking in Java 4th Edition 源码

    《Thinking in Java 4th Edition》是一本深受程序员喜爱的经典Java教程,由Bruce Eckel撰写。这本书深入浅出地介绍了Java编程语言的核心概念和技术,包括面向对象编程、泛型、集合框架、网络编程、多线程等。源码是...

    高清 英文版Thinking in java

    ### 高清英文版《Thinking in Java》知识点解析 #### 一、书籍基本信息与评价概览 《Thinking in Java》是一本由Bruce Eckel撰写的关于Java编程的经典教材,本书为第四版。作为MindView公司的总裁,作者不仅拥有...

    Thinking in Java 4rd 第四版原版

    《Thinking in Java》不仅仅是一本技术书籍,它更像是一位经验丰富的导师,引导着每一位读者探索Java编程世界的奥秘。无论是为了通过专业认证,还是为了个人兴趣和职业发展,这本书都是不可或缺的学习资源。正如读者...

    Thinking in Java 中文版英文版

    《Thinking in Java》是Bruce Eckel的经典之作,它是一本深度探索Java编程语言的书籍,深受全球程序员喜爱。这本书不仅适合初学者,也适合有一定经验的开发者深入理解Java的精髓。书中涵盖了Java语言的各个方面,从...

    ThinkIng in Java

    《Thinking in Java》是Java编程领域的一本经典著作,由Bruce Eckel撰写,中文译名为《深入理解Java》。这本书以其全面、深入和细致的讲解,深受Java开发者喜爱,是学习和进阶Java技术的重要参考书籍。其内容覆盖了...

    thinking_in_java-master.zip_Thinking in Java_zip

    `thinking_in_java-master.zip`这个压缩文件很可能是该书的源代码或者配套练习代码的集合,方便读者实践和探索书中所讲解的内容。 在深入探讨《Thinking in Java》中的知识点之前,我们先了解一下Java语言的基础。...

    Thinking in Java 4th Edition.docx

    ### 《Thinking in Java》第四版核心知识点概览 #### 一、书籍概述与价值 《Thinking in Java》第四版是一本经典的Java编程教材,由Bruce Eckel编写,旨在为具有一定Java基础的学习者提供深入的学习资源。本书内容...

    Thinking in Java(英文原版第4版)

    《Thinking in Java(英文原版第4版)》作为一本经典Java编程思想书籍,其内容涵盖了面向对象的叙述方式,并针对Java SE5/6版本新增了示例和章节。本书适合作为初学者的入门教材,同时也包含了足够的深度,适合专业...

    Thinking in Java.

    ### Thinking in Java: 核心思想与关键技术解析 #### 标题解读:《Thinking in Java》 本书名为《Thinking in Java》,意味着它不仅仅是一本教授Java语法的技术书籍,更是引导读者深入理解Java语言的设计理念、...

    Thinking In Java 4th

    ### 《Thinking in Java 第四版》:Java学习的经典指南 #### 书籍概述 《Thinking in Java 第四版》是作者布鲁斯·埃克尔(Bruce Eckel)编写的一本经典Java教程。作为一本深入浅出、内容丰富的编程书籍,它自问世...

    thinkinjava4源码-Thinking-In-Java4e:java编程思想第4版

    通过这个源码包,你可以跟随《Thinking in Java》第四版的章节,逐个探索和实践每一个主题,加深对Java编程的理解,提升编程技能。同时,这也是一个很好的自我测试和复习工具,你可以尝试修改代码,观察不同行为,...

    Thinking In Java 练习题答案 第四版

    《Thinking in Java》是Bruce Eckel的经典之作,它深入浅出地介绍了Java编程语言的核心概念和技术。这本书的第四版更是经过了全面的更新,涵盖了Java SE 5.0及之后的许多新特性。本资源提供了该书练习题的答案,帮助...

    Thinking in java 4th 英文版

    总之,《Thinking in Java》第四版是一部涵盖Java编程语言所有重要方面的综合指南,它不仅仅是一本教科书,更是一位引领你进入Java世界并不断探索的良师益友。无论是作为自学的教材,还是作为专业开发者的参考书,这...

Global site tag (gtag.js) - Google Analytics