主题:这种情况是否会发生从基类到派生类的类型转换
例如:
function1()会抛出异常,但是以 System.Exception 的类型抛出。
function2()调用 function1(),并且要按照捕获的不同派生类型异常进行相应的处理,如下面的代码所示:
function2()
{...
try
{
function1();
}
catch (System.Data.SqlClient.SqlException)
{
doSomething...
}
catch ...
}
其中 System.Data.SqlClient.SqlException 异常类以 System.Exception 类为根类多次派生而来。很想知道运行时 catch 语句能否成功地把 Exception 类向下类型转换为 SqlException 类。虽然代码通过了编译,可还是很不放心。
function1()会抛出异常,但是以 System.Exception 的类型抛出。
function2()调用 function1(),并且要按照捕获的不同派生类型异常进行相应的处理,如下面的代码所示:
function2()
{...
try
{
function1();
}
catch (System.Data.SqlClient.SqlException)
{
doSomething...
}
catch ...
}
其中 System.Data.SqlClient.SqlException 异常类以 System.Exception 类为根类多次派生而来。很想知道运行时 catch 语句能否成功地把 Exception 类向下类型转换为 SqlException 类。虽然代码通过了编译,可还是很不放心。