2006-12-28

如何处理异常?

关键字: 异常
当我捕获一个IOException时,我应该如何处理?
void init()
{
    try{
    loadFile();
     }
     catch(IOException e)
    {}
} 

1。 添加日志并转换为uncheck异常抛出。
void init()
{
    try{
    loadFile()}
     catch(IOException e)
    {
         log("error while process file",e);
         throw new RuntimeException("error while process file",e);
    }
}

2。 直接抛出到客户端
void init() throws  IOException
{
    
    loadFile();
   
}

3.还是其他方案
评论
fantasy 2006-12-29
我昨天考虑了一下,
如果调用者能够处理这个异常,那么我们应该抛出checked异常,让客户端捕获并处理。
如果调用者不能够处理这个异常我们应该记录日志并且抛出一个uncheck异常,并在文档中申明我们所抛出的异常。
schnell18 2006-12-29
这要取决于你这段代码所处的应用情形以及loadFile()失败对整个执行流程的影响。如果这段代码要作为library被调用那么通常抛出一个checked exception或unchecked exception。如果这个段代码是entry point level的可以简单的抛出unchecked exception。如果loadFile()失败对整个执行流程没有关键影响,可以直接catch该exception,同时亦可以该异常记到日志文件中去。
fantasy
搜索本博客
最近加入圈子
存档
最新评论