惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
M
MIT News - Artificial intelligence
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Azure Blog
Microsoft Azure Blog
J
Java Code Geeks
Recent Announcements
Recent Announcements
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
IT之家
IT之家
F
Fortinet All Blogs
博客园 - 聂微东
U
Unit 42
Martin Fowler
Martin Fowler
腾讯CDC
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
量子位
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky

博客园 - 张旋

node-sass 安装卡在 node scripts/install.js 解决办法 如何管理自己? 解决play-1.4.0在linux或mac下提示No such file or directory的问题 PlayFramework 1.2.x 在Controller 中识别JSON提交 写了一个小游戏 Java 动态编译 Play! Framework —— 颠覆“企业级”=“复杂”的观念 JDK 7出人意料将增加“简单”闭包,发布时间推迟至明年底 冷观PDM PDM在中国为什么比ERP更难成功实施? 什么是PDM Hibernate查询快速入门 策略→需求→建模→规划→执行 什么是BNF范式,什么又是EBNF范式? - 张旋 - 博客园 又是好久不写日志 发现自己的blog里有很多好东西 近期杂感 现在的我,有两个状态。我要去找第三个 我是5型
开发通用类时遇到的几个问题
张旋 · 2009-07-30 · via 博客园 - 张旋

在自己设计一些通用类库时遇到了几个问题,想了很久,一直没有想明白。所以想发起一个讨论,看看大家是怎麼看待这几个问题的:
一、关於异常的处理的几个问题:
1.我们的方法应该在什麼时候该抛出异常?什么时候自己处理异常?比如:参数为null时,何时需要抛出NullPointerException?

2.我们的异常类型应该细化到何种程度?即,何时需要使用自定义异常类型?是把一个异常设计
的复杂化,可以保存更多的异常信息好,还是把异常类型设计的多一些、简单些好?

3.何时抛出RuntimeException?何时抛出Exception?

4.捕捉到调用的方法抛出的异常,处理完毕后,需要继续向上抛出吗?

5.无法知道一个方法是否会抛出一个RuntimeException,这个时候如何保证代码的健康?

二.我们在设计类的时候,应该把什麼放在构造函数里,把什麼作为参数?

比如,我要写一个对List进行排序的类。ListSorter,那麼我该设计为

new ListSorter(list).sort(String sortField,SortOrder.ASC);

还是

new ListSorter(String sortField,SortOrder.ASC).sort(list);

这样较好? 或者说,这个对List排序类的接口方法,应该设计为

sort(String sortField,SortOrder sortOrder);


还是


sort(List list);


这样?

张旋(zxsoft)
如对本文有什么疑问,请在下面写下留言,谢谢!