导读:
Net出现多年之后还是对异常处理一知半解的,有很多误解,本文将讲解三个常见误解,一个是catch的使用方法是否正确,另外两个是try/catch的性能损失问题。
中国_网管联盟bitsCN.com
有些人认为下面代码就是一个catch的错误用法:
bbs.bitsCN.com
catch(Exception e)
{
throw e;
} DL@bitsCN_com网管软件下载
中国_网管联盟bitsCN.com
首先说明,这不是一个错误用法,但是通常来讲,我们应该避免这种代码。然后要说明的是,这段代码有一个比较典型的作用就是改变异常出现的位置,也就是可以对某类异常统一在一个位置处理。先看下面代码:
bitsCN~com
public int GetAllCount2()
{
try
{
openDB();
int i = 1;
return i;
}
catch (SqlException sex)
{
throw sex;
}
catch (Exception ex)
{
throw ex;
}
}
public int GetAllCount()
{
openDB(); // 这里也可能是微软企业类库等
int i = 1;
return i;
}
private void openDB()
{
conn.Open();
} bbs.bitsCN.com中国网管论坛
本文转自
http://www.bitscn.com/dotnet/framework/200709/109660.html
Net出现多年之后还是对异常处理一知半解的,有很多误解,本文将讲解三个常见误解,一个是catch的使用方法是否正确,另外两个是try/catch的性能损失问题。
中国_网管联盟bitsCN.com
有些人认为下面代码就是一个catch的错误用法:
bbs.bitsCN.com
catch(Exception e)
{
throw e;
} DL@bitsCN_com网管软件下载
中国_网管联盟bitsCN.com
首先说明,这不是一个错误用法,但是通常来讲,我们应该避免这种代码。然后要说明的是,这段代码有一个比较典型的作用就是改变异常出现的位置,也就是可以对某类异常统一在一个位置处理。先看下面代码:
bitsCN~com
public int GetAllCount2()
{
try
{
openDB();
int i = 1;
return i;
}
catch (SqlException sex)
{
throw sex;
}
catch (Exception ex)
{
throw ex;
}
}
public int GetAllCount()
{
openDB(); // 这里也可能是微软企业类库等
int i = 1;
return i;
}
private void openDB()
{
conn.Open();
} bbs.bitsCN.com中国网管论坛
本文转自
http://www.bitscn.com/dotnet/framework/200709/109660.html