2012-10-27 157 views
1

我需要我的应用程序在写入位置/dev/full时出现错误。无论如何,我可以用Java异常处理来做到这一点吗?我已经在投掷和捕捉IOerrors了,所以我不知道问题是什么......?Java IO异常捕获

我正在读取标准数据,并将其压缩并写入标准输出。

写入/ dev/full不会引发异常......关于如何为此提出异常的任何想法?

+0

你需要你的应用程序来提出一个错误。你抛出异常,但你也抓住它。你到底是什么? –

+0

我发现错误并打印堆栈跟踪,并以非零状态退出。我正在读取标准数据,并将其压缩并写入标准输出。 – jsjwooowooo

+0

可以向我们展示代码 – Jayy

回答

1

有一个所有例外的父级是Exception。如果您不确定try区块是否抛出了哪种类型的异常,请在最后一个catch区块中使用Exception

像这样

try{ 
    ....//code here 
} 
catch(FileNotFoundException fnfe){ 
    log(fnfe); 
} 
catch(IOException ioe){ 
    log(ioe); 
} 
catch(Exception e){ 
    log(e); 
} 
finally{ 
    ....//code here 
} 
+0

我已更新我的问题,写入/ dev/full时需要输出和错误。它不是作为IOexception出现,有什么想法? – jsjwooowooo

+0

如果您可以成功打开并写入文件,则不会收到IOException。你需要抛出自定义异常。 – Jayy

0

你可以写一个代码编写错误的所有细节,任何具体意见要做出关于类或对象,这样就可以追踪里面的错误更好catch块。

try 
{ 
//Your code 
} 
catch(SomeException e) 
{ 
//Create a file, write data to it and close it. 
} 

我使用这种技术保存用户数据,以防文件无法打开进行修改。因为我确信数据将被存储在2个地方中的任何一处。

此外,这并不影响我的程序的进一步执行,因为数据加载在File的对象中。
上面可能有更好的方法。但这是我的教授告诉我的。可能会有用。

+0

我已经更新了我的问题,写入/ dev/full时需要输出和错误。它不是作为IOexception出现,有什么想法? – jsjwooowooo