- 浏览: 190400 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (83)
- J2EE/Core Java (24)
- J2EE/Portal (2)
- J2EE/UI (4)
- J2EE/ATG (1)
- J2EE/Report (1)
- J2EE/Web Service/Rest API (2)
- Design Pattern (2)
- Arithmetic (4)
- Linux (12)
- Ruby&Rails (17)
- Database (5)
- J2EE/Payment (1)
- J2EE/JVM (1)
- Encryption/Decryption (3)
- J2EE/Multi Threading (4)
- SQL (1)
- https://community.teamviewer.com/t5/Knowledge-Base/Where-can-I-download-older-TeamViewer-versions-nbsp/ta-p/7729 (0)
最新评论
首先是一个要不要用checked Exeption的一个讨论
http://www.iteye.com/topic/2038
总结得出的基本原则:
An Exception Handling Framework for J2EE Applications
http://onjava.com/pub/a/onjava/2006/01/11/exception-handling-framework-for-j2ee.html?page=6
附件为源码
http://www.iteye.com/topic/2038
总结得出的基本原则:
引用
使用Checked Exception还是UnChecked Exception的原则,我的看法是根据需求而定。
如果你希望强制你的类调用者来处理异常,那么就用Checked Exception;
如果你不希望强制你的类调用者来处理异常,就用UnChecked。
那么究竟强制还是不强制,权衡的依据在于从业务系统的逻辑规则来考虑,如果业务规则定义了调用者应该处理,那么就必须Checked,如果业务规则没有定义,就应该用UnChecked。
还是拿用户登陆的例子来说,
User login(String username, String password); throws UserNotFoundException, PasswordNotMatchException;
try {
UserManager.login(xx,xx);;
....
用户登陆以后的主事件流代码
} catch (UserNotFoundException e); {
...
用户名称没有的事件处理,例如产生一个提示用户注册的页面
} catch (PasswordNotMatchException e); {
....
密码不对的事件处理,例如forward到重新登陆的页面
}
可能产生的异常有:
IOException (例如读取配置文件找不到)
SQLException (例如连接数据库错误)
ClassNotFoundException(找不到数据库驱动类)
NoSuchUserException
PasswordNotMatchException
以上3个异常是和业务逻辑无关的系统容错异常,所以应该转换为RuntimeException,不强制类调用者来处理;而下面两个异常是和业务逻辑相关的流程,从业务实现的角度来说,类调用者必须处理,所以要Checked,强迫调用者去处理。
在这里将用户验证和密码验证转化为方法返回值是一个非常糟糕的设计,不但不能够有效的标示业务逻辑的各种流程,而且失去了强制类调用者去处理的安全保障。
至于类调用者catch到NoSuchUserException和PasswordNotMatchException怎么处理,也要根据他自 己具体的业务逻辑了。或者他有能力也应该处理,就自己处理掉了;或者他不关心这个异常,也不希望上面的类调用者关心,就转化为 RuntimeException;或者他希望上面的类调用者处理,而不是自己处理,就转化为本层的异常继续往上抛出来。
如果你希望强制你的类调用者来处理异常,那么就用Checked Exception;
如果你不希望强制你的类调用者来处理异常,就用UnChecked。
那么究竟强制还是不强制,权衡的依据在于从业务系统的逻辑规则来考虑,如果业务规则定义了调用者应该处理,那么就必须Checked,如果业务规则没有定义,就应该用UnChecked。
还是拿用户登陆的例子来说,
User login(String username, String password); throws UserNotFoundException, PasswordNotMatchException;
try {
UserManager.login(xx,xx);;
....
用户登陆以后的主事件流代码
} catch (UserNotFoundException e); {
...
用户名称没有的事件处理,例如产生一个提示用户注册的页面
} catch (PasswordNotMatchException e); {
....
密码不对的事件处理,例如forward到重新登陆的页面
}
可能产生的异常有:
IOException (例如读取配置文件找不到)
SQLException (例如连接数据库错误)
ClassNotFoundException(找不到数据库驱动类)
NoSuchUserException
PasswordNotMatchException
以上3个异常是和业务逻辑无关的系统容错异常,所以应该转换为RuntimeException,不强制类调用者来处理;而下面两个异常是和业务逻辑相关的流程,从业务实现的角度来说,类调用者必须处理,所以要Checked,强迫调用者去处理。
在这里将用户验证和密码验证转化为方法返回值是一个非常糟糕的设计,不但不能够有效的标示业务逻辑的各种流程,而且失去了强制类调用者去处理的安全保障。
至于类调用者catch到NoSuchUserException和PasswordNotMatchException怎么处理,也要根据他自 己具体的业务逻辑了。或者他有能力也应该处理,就自己处理掉了;或者他不关心这个异常,也不希望上面的类调用者关心,就转化为 RuntimeException;或者他希望上面的类调用者处理,而不是自己处理,就转化为本层的异常继续往上抛出来。
An Exception Handling Framework for J2EE Applications
http://onjava.com/pub/a/onjava/2006/01/11/exception-handling-framework-for-j2ee.html?page=6
附件为源码
- exp-framework.zip (20.5 KB)
- 下载次数: 9
- sqlprofiler-0.3-bin.zip (1.1 MB)
- 下载次数: 5
- Log4jTest.tar.gz (3.3 KB)
- 下载次数: 10
- JDBCUtils.tar.gz (6.8 KB)
- 下载次数: 13
- StrutsTestCase.zip (2.3 MB)
- 下载次数: 2
- StrutsIbatis.zip (4.2 MB)
- 下载次数: 7
发表评论
-
Start tomcat with port 80 without Linux root user-Use iptables mapping
2016-05-25 17:39 869引用In linux system. only root us ... -
Format XML in JAVA
2016-01-11 12:23 627public static String format ... -
HttpURLConnection下载文件
2015-08-07 11:25 829public class HttpDownloadUtilit ... -
Ehcache RMI Replicated Cluster(RMI集群)
2013-04-25 23:39 1096引用本文是ehcache RMI集群的例子,导入附件中的jav ... -
Integrete unitils for database(dao) testing
2013-02-01 18:39 1722引用Database testing Unit tests f ... -
JAXB入门
2012-10-16 11:59 819引用jaxb是一个读写xml的工具,还可以提供验证,不需要额外 ... -
Freemarker使用入门
2012-10-16 11:54 1052引用freemarker是一种模板标记工具,可以做页面静态化, ... -
perforce java api使用
2012-10-16 11:43 1285引用perforce是种版本管理软件,提供啦完整的java a ... -
XPath 入门
2012-10-16 11:29 909引用xpath可以快速定位获取XML文件中指定属性和值,jdk ... -
Java File Diff-diffutils
2012-09-27 17:35 75341. Maven Dependency <depende ... -
XSD 入门使用
2012-09-18 23:20 811<?xml version="1.0" ... -
nexus-2.1.1安装及使用入门
2012-08-13 22:52 14861. 安装 地址http://www.sonatype.org ... -
File Demo
2012-06-25 22:55 1354package org.springside.examples ... -
Java 访问sharepoint webservice(NTLM & SSL)
2012-06-12 09:47 3805引用遇到需要使用java访问微软的sharepoint的web ... -
Selenium Web Driver入门
2012-05-27 23:17 58811 What is Selenium? 引用Selenium ... -
HttpClient4.1.2 & HtmlUnit2.9 处理文件下载
2012-01-09 18:18 1061TestCode import java.io.Fi ... -
HttpClient4.1.2 & HtmlUnit2.9 NTLM 验证 和 Httpclient4.1.2 https/SSL
2012-01-09 18:13 16291. HttpClient4.1.2 & HtmlUn ... -
HttpClient4登陆ITeye
2012-01-08 23:33 1928import java.io.IOException; im ... -
Spring2集成测试
2011-08-25 22:21 794Spring2测试类继承层次 集成测试例子 public ... -
Learning EasyMock3.0 By Official Example
2011-08-24 16:48 1413Maven Installation+ add followi ...
相关推荐
通过实例了解 Java checked 和 unchecked 异常 Java 异常分为两种类型:checked 异常和 unchecked 异常。checked 异常是可以在执行过程中恢复的,例如无效的用户输入、文件不存在、网络或者数据库链接错误等。这些...
1. 可控制性:Exception 可以是可被控制的(checked)或不可控制的(unchecked),而 Error 总是不可控制的(unchecked)。 2. 错误来源:Exception 表示一个由程序员导致的错误,而 Error 经常用来表示系统错误或...
Java异常分为两种类型,checked异常和unchecked异常,另一种叫法是异常和错误。 简单地讲,checked是可以在执行过程中恢复的,而unchecked异常则是无法处理的错误。 checked异常: 表示无效,不是程序中...
Exception类层次则分为两种:checked异常和unchecked异常。 二、checked异常和unchecked异常的区别 checked异常是指编译器可以检查的异常,例如IOException、SQLException等。这些异常是在编译时检查的,如果程序...
Java throw Exception实现异常转换是Java语言中的一种异常处理机制,它允许开发者将 checked exception 转换为 unchecked exception,从而使得异常处理变得更加灵活和便捷。本文将详细介绍Java throw Exception实现...
通过合理地划分`CheckedException`和`UncheckedException`,我们可以更好地管理程序的异常情况,提高代码的健壮性和可读性。在实际编程中,应该根据异常的性质和预期的处理方式来选择合适的异常类型,从而确保程序在...
本资源对Java语言程序设计基础篇的Chapter 17 Exceptions and Assertions进行了详细的解释和知识点总结,涵盖了Java异常类的继承结构、claiming exceptions、checked exception和unchecked exception、throw语句和...
Exception又可以分为Checked Exception(受检查异常)和Unchecked Exception(不受检查异常)。Checked Exception即受检查异常,Java代码在编译过程中,如果受检查异常没有被catch或者throws关键字处理的话,就没...
和Java一样,python也提供了对于checked exception和unchecked exception. 对于checked exception,我们通常使用try except可以显示解决,对于unchecked 异常,其实也是提供回调或者是钩子来帮助我们处理的,我们可以在...
在本文中,我们将详细介绍 Java 异常处理机制,包括 try、catch、finally 块、throws、throw 关键字、Exception 和 Error 类、Checked Exception 和 Unchecked Exception 等概念,并提供了多种异常处理的示例代码,...
Exception 又分为两类:CheckedException 和 UncheckedException。 CheckedException 需要用 try...catch... 显示的捕获,而 UncheckedException 不需要捕获。 三、 异常的使用 异常的使用可以分为两类:Checked...
常见的Checked Exception包括IOException、SQLException等,而Unchecked Exception包括NullPointerException、ArrayIndexOutOfBoundsException等。 三、JAVA语言的异常处理方式 JAVA语言的异常处理方式有多种,...
Exception类本身又分为两个子类:Checked Exception和Unchecked Exception。 Checked Exception(检查型异常)是那些在编译时必须被处理的异常,例如IOException、SQLException等。如果方法可能会抛出这些异常,...
在java的世界里,异常是一个永恒的话题,很...使用checked exception 还是 unchecked exception?成为了衡量一个java程序员是高手还是菜鸟的标准。exception-framework提供了一种托管异常的方案,值得我们去研究学习。
九、unchecked exception 和 checked exception unchecked exception 是编译器不会检查的异常,例如 NullPointerException、ArrayIndexOutOfBoundsException 等;checked exception 是编译器会检查的异常,例如 ...
unchecked exception和checked exception unchecked exception是编译器不会检查的异常,例如NullPointerException和ArrayIndexOutOfBoundsException等。checked exception是编译器会检查的异常,例如IOException和...
Checked Exception 和 Unchecked Exception 有什么区别? Throwable 类常用方法有哪些? try-catch-finally 如何使用? finally 中的代码一定会执行吗? 如何使用 try-with-resources 代替try-catch-finally? I/O ...
- **Checked Exception**:编译器强制要求捕获或声明抛出的异常类型,如 `IOException`。 - **Unchecked Exception**:运行时异常,编译器不会检查,如 `NullPointerException`。 #### 三、自定义异常 自定义...