给JAVA设计开发新手一些建议和意见(2)
来源:长理培训发布时间:2017-12-13 14:52:59
百度广告
【处理好你的异常】
下面从书中摘出几条建议:
*千万不要隐藏异常***
*对可恢复的情况使用可检查异常,对程序错误使用运行时异常(RunTimeException)
*在详细信息里面包括失败捕获信息
*。。。。
如果你的程序因为一个NULL值,而报了几十个NullPointException的话,不但得让人烦死,而且还非常难以找到错误所在。所以在Java中一定要注意这个问题。
让我们来看一个例子:
{
return aUser。getName();
很明显,如果参数为Null,就会抛出异常。应该改为:
{
{
}
{
}
或者你要求参数不能为空,还可以抛出一个异常,强制使用者不能传入空值。
try
//your code here
catch(Exception e)
//do warn
这样写的话,就截获了所有异常,当然也包括了RunTimeException。 在很多情况下,这是不合适的处理方式,我们只应截获必要的异常,而应该忽略RuntimeException。
关于异常处理,我提出几点建议:
*不要忘了RunTimeException,除非必要,否则不要用catch(Exception e)的方式捕获所有异常。
*不要把异常处理都抛给别人,本函数有能力处理的就不要抛出。
【过度依赖】
面对这样的程序,存在的问题不仅仅是定位错误麻烦,而且如果需要维护这样的函数库/框架,恐怕你的有非常高的统御能力才行,否则打死我也不去维护。
【滥用接口】
"面向接口",于是所有的类都有一个对应的接口,接口的函数声明和类一模一样,而且一个接口只有一个类来实现它。这样的面向接口有什么意义哪? (为了用Spring的事务的情况除外)
例如如下一个类:
{
private int n2;
{
this。n2=n2;
public void setN1(int n1)
return this。n1 = n1;
public void setN2(int n2)
return this。n2 = n2;
public int getN1()
return n1;
public int getN2()
return n2;
public int getResult()
return n1 + n2;
}
public interface Counter
int getResult();
但是很多情况下,经常是这样的接口:
{
int getN1();
void setN1(int n1);
}
1.除了getResult之外,其他的函数我们根本用不到,所以是多余的。
所以,接口有好的作用,但是不要滥用。
■ 你的接口只需要声明别人用到的函数即可。
点击加载更多评论>>