C# System.IO.Exception try catch

来源:百度知道 编辑:UC知道 时间:2024/06/04 14:34:29
private void WriteLog(string fileName) {
try{
Write log;
}
catch(Exception e)
{
if (LoggingException != null) {
LoggingException(this, new UnhandledExceptionEventArgs(e, false));
}
}
}
上面的程序中,对写Log的操作做了异常处理,比如写某个被其他Process占有的日志文件的时候,就会抛出System.IO.Exception异常(显示异常原因的窗口会弹出来)。
问题是:想对某些日志文件进行特别处理(即:对写该日志的时候,即使发生System.IO.Exception也不弹出显示异常原因的窗口),该如何处理比较好呢? 下面的加入的判断处理是否合适呢?会不会引起其他异常或者意想不到的异常?
catch(Exception e)
{
if {(LoggingException != null) && (fileinfo != 特殊的日志文件){
LoggingException(this, new UnhandledExceptionEventArgs(e, false));
}
}
请具体回答,满意的话,另外加分!
private void WriteLog(string fileName) {
try{
Write log;
}
catch(Exception e)
{
if (LoggingException != null) {
//不做任何处理
//LoggingException(this, new UnhandledExceptionEventArgs(e, false));
}
}
}
在上面的Catch中,对捕捉到的异常不做任何处理是否合适呢?
我这样的目的是:Write Log处理异常

private void WriteLog(string fileName)
{
try{
Write log; //这里出错由下面的catch捕获
}
catch(Exception e)
{
try
{
if (LoggingException != null)
{
LoggingException(this, new UnhandledExceptionEventArgs(e,false));
}
} catch
{//如catch里面的操作再抛出异常,不作任何处理,
这样就不会弹出显示异常原因的窗口
}
}
}

LoggingException != null && fileinfo != 特殊的日志文件
这样写可以。
出错时,如果是特殊日志文件就不触发LoggingException这个event,这个线程就结束了。
如果不是特殊日志文件就触发LoggingException后线程结束。
不会有其他的异常。

那就把catch里的全注释掉不做任何处理。
不过Stream之类的还是要关一关。

把UnhandledExceptionEventArgs参数改一下,传fileinfo 过去, 由接收的对象决定

你写完日志,日志文件一定要关闭,不然就会报异常