突然想起应用中异常处理问题,以前很少应用这块知识,或者说应用得不好
看到一篇很好的文章,真的是能够从整体分析,架构,非常精彩,完全是有经验之谈
特发送连接地址
http://blog.csdn.net/huxin1/archive/2009/07/30/4395121.aspx
同时为了便于理解文中对运行时异常(也称为非检查型异常 unchecked exception)在应用程序的使用,特发一个实际例子来说明自定义运行时异常的方式和优越点,相比非运行时异常(也称为检查异常 checked exception)一定要申明和捕获带来程序编码上的“灾难”的缺点。
package com.fruitking.caipiao;
public class TestException {
/**
* @param args
*/
public static void main(String[] args) {
TestException test = new TestException();
try{
test.read();
}catch(DaoException e){
e.printStackTrace();
}
try{
test.write();
}catch(AppException e){
e.printStackTrace();
}
try{
test.rewrite();
}catch(AppException e){
e.printStackTrace();
}
test.write();
test.rewrite();//这句没有执行到,能理解么?
}
public void read()throws DaoException{//检查型异常
System.out.println();
System.out.println("this is a checked exception!");
throw new DaoException("出错啦");
}
public void write(){//不检查型异常
System.out.println();
System.out.println("this is a unchecked exception!");
throw new AppException("也出错啦");
}
public void rewrite(){//不检查型异常
System.out.println();
System.out.println("this is a unchecked exception too!");
write();
}
}
class DaoException extends Exception{
public DaoException(){
super();
}
public DaoException(String message){
super(message);
}
public DaoException(Throwable throwable){
super(throwable);
}
public DaoException(String message,Throwable throwable){
super(message, throwable);
}
}
class AppException extends RuntimeException{
public AppException(){
super();
}
public AppException(String message){
super(message);
}
public AppException(Throwable throwable){
super(throwable);
}
public AppException(String message,Throwable throwable){
super(message, throwable);
}
}
分享到:
相关推荐
本文从Java异常最基本的概念、语法开始讲述了Java异常处理的基本知识,分析了Java异常体系结构,对比Spring的异常处理框架,阐述了异常处理的基本原则。并且作者提出了自己处理一个大型应用系统异常的思想,并通过...
Java集合框架是Java程序员必备的核心知识之一。在面试中,对Java集合框架的深入理解将成为展现你的编程能力和解决问题的能力的重要因素。本篇面试题集锦旨在帮助你更深入地...让我们一起深入探索Java集合框架的奥秘吧!
《码出高效:Java 开发手册》以实战为中心,以新颖的角度全面阐述面向对象理论,逐步深入地探索怎样成为一位优秀开发工程师。比如:如何驾轻就熟地使用各类集合框架;如何得心应手地处理高并发多线程问题;如何顺其...
面向企业应用的Java教学框架探索
探索Win32结构化异常处理流程,可用于高级Windows调试或破解
深入探索Java对象的序列化 对象序列化就是把对象写入到输出流中,用来存储或者传输。 对象的反序列化就是从输入流中读取对象。 要序列化的对象应该实现Serializable接口。 Serializable接口是一个标识接口,...
在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热...本文将探索如何在不破坏 Java 虚拟机现有行为的前提下,实现某个单一类的热部署,让系统无需重启就完成某个类的更新。
深入探索 高效维护 为设备安全保驾护航——SOFT3000 CPU过载问题解决探索.pdf
Java正则表达式在字符串处理和模式匹配中扮演着重要角色。为了帮助准备面试的你更好...通过学习这些问题和解析,你将掌握复杂匹配规则的设计思路和高效字符串处理的技巧,为你在Java正则表达式面试中脱颖而出提供帮助。
集合类源码的深入研究 探索JAVA的本质 提高代码质量
《码出高效:Java 开发手册》以实战为中心,以新颖的角度全面阐述面向对象理论,逐步深入地探索怎样成为一位优秀开发工程师。比如:如何驾轻就熟地使用各类集合框架;如何得心应手地处理高并发多线程问题;如何顺其...
本毕业设计旨在探索并实现一种基于Java图形图像处理的方法,以提高图像处理的速度和精度。该方法将使用Java语言编写,并利用Java图形处理库来实现图像处理。 ## 研究背景 随着计算机技术的发展,图形图像处理在...
工程教育专业认证背景下《Java框架Spring MVC》实验教学改革探索.pdf
深入探索Android热修复技术原理。章节目录: 第一章、热修复技术介绍 第二章、代码热修复技术 第三章、资源热修复技术 第四章、SO库热修复技术 第五章、热修复未来展望
项目概述:深入探索基于Python的Playwright UI自动化测试框架 本项目致力于深入研究Playwright这一前沿的自动化UI测试框架,采用Python语言进行深入剖析与实践。项目包含35个文件,其中主要包括: - Python脚本...
面向企业应用的Java教学框架探索.pdf
深入探索Android热修复技术原理.pdf 阿里技术 深入探索Android热修复技术原理.pdf 阿里技术 深入探索Android热修复技术原理.pdf 阿里技术
这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整...
深入探索c++对象模型 inside the c++ object model Stanley B. Lippman 侯捷译