我对C#中的Try Catch语句有疑问。
例如,如果我有这样的陈述
try
{
string text = sometext;
var Auto_IMPORT = new AutoImport();
Auto_IMPORT.StartProcessing();
Console.WriteLine(sometext);
}
catch(Exception Ex)
{
//Would this catch AutoImport.StartProcessing() exceptions?
Console.WriteLine(ex.Message);
}
AutoImport是一个类库,我正在调用一些逻辑来开始处理。 如果在AutoImport.StartProcessing()内部的逻辑中发生异常,那么此try语句会捕获该异常还是会超出范围呢?
提前致谢
答案 0 :(得分:-1)
这取决于Auto_IMPORT.StartProcessing()
的行为。如果没有捕获异常,那么是的,您将获得异常。另一方面,如果内部代码关闭Auto_IMPORT
捕获异常,并且不会抛出新异常,那么您将不会得到任何异常。
答案 1 :(得分:-1)
是。
它捕获try
块中的任何错误。如果他们在某种方法的某种方法中无关紧要。
经过测试:
class _Class
{
public string name;
public void myMethod()
{
int i;
string s = "asda";
i = int.Parse(s);
}
}
class Program
{
static void Main(string[] args)
{
try
{
_Class blah = new _Class();
blah.name = "Steve";
blah.myMethod();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
Console.ReadLine();
}
在int.Parse
中捕获异常