为什么这个C#代码会破坏进程?

为什么这个C#代码会破坏进程?,c#,C#,据我所知,在从string到int的转换过程中,会抛出FormatException。现在在catch块中,我们重新抛出原始异常。为什么在泛型异常捕获块中没有捕获到这一点?如果我把try/catch放在抛出的周围,那么应用程序就不会崩溃 为什么在泛型异常捕获块中没有捕获到这一点 因为泛型异常块捕获仅在try块内引发的异常,而不捕获从catch块引发的异常 因此,如果您打算从catch块抛出一个异常,并且想要处理它,那么您需要将调用代码包装到另一个try/catch中 为什么在泛型异常捕获块中没有

据我所知,在从string到int的转换过程中,会抛出FormatException。现在在catch块中,我们重新抛出原始异常。为什么在泛型异常捕获块中没有捕获到这一点?如果我把try/catch放在抛出的周围,那么应用程序就不会崩溃

为什么在泛型异常捕获块中没有捕获到这一点

因为泛型异常块捕获仅在
try
块内引发的异常,而不捕获从
catch
块引发的异常

因此,如果您打算从
catch
块抛出一个异常,并且想要处理它,那么您需要将调用代码包装到另一个try/catch中

为什么在泛型异常捕获块中没有捕获到这一点

因为泛型异常块捕获仅在
try
块内引发的异常,而不捕获从
catch
块引发的异常

因此,如果您打算从
catch
块抛出一个异常,并且想要处理它,那么您需要将调用代码包装到另一个try/catch中

static void Main(string[] args)
        {
            try
            {
                var intValue = "test";
                var test = Convert.ToInt32(intValue);
            }
            catch (FormatException)
            {
                Console.WriteLine("format exception");
                throw;
            }
            catch (Exception)
            {

            }
            finally
            {
                Console.WriteLine("finally");
            }
        }