C#尝试Catch语句查询

时间:2016-04-08 12:16:01

标签: c# try-catch

我对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语句会捕获该异常还是会超出范围呢?

提前致谢

2 个答案:

答案 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

中捕获异常