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

推荐订阅源

美团技术团队
D
DataBreaches.Net
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
Docker
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
Check Point Blog
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
IT之家
IT之家
月光博客
月光博客
U
Unit 42
K
Kaspersky official blog
T
Threatpost
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
GbyAI
GbyAI
P
Proofpoint News Feed
Last Week in AI
Last Week in AI
云风的 BLOG
云风的 BLOG
酷 壳 – CoolShell
酷 壳 – CoolShell
I
InfoQ
Engineering at Meta
Engineering at Meta
Recorded Future
Recorded Future
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security @ Cisco Blogs
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
Security Archives - TechRepublic
Security Archives - TechRepublic
Webroot Blog
Webroot Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
S
Schneier on Security
S
Secure Thoughts
The Register - Security
The Register - Security
B
Blog RSS Feed
The Last Watchdog
The Last Watchdog
P
Palo Alto Networks Blog
爱范儿
爱范儿
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
L
LINUX DO - 热门话题
C
Cisco Blogs
Spread Privacy
Spread Privacy
F
Full Disclosure
博客园 - 聂微东
T
The Blog of Author Tim Ferriss

博客园 - 张旋

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)
如对本文有什么疑问,请在下面写下留言,谢谢!