クイズ

http://blogs.msdn.com/brada/archive/2004/10/21/246102.aspx
Brad Abrams氏のところで出ていたクイズ。私は反則技しか思いつきませんでした。(^^;

using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        /* 私の考えた反則
        Console.WriteLine("In try");
        Console.WriteLine("Mystery inserted code");
        Console.WriteLine("In catch");
        Console.WriteLine("After try..catch");
        Console.SetOut(new StringWriter());  // もしくは、returnとか
        */

        /* こんな回答があった
        AppDomain.CurrentDomain.ExceptionThrown +=
            delegate { Console.WriteLine("Mystery inserted code"); };
        */

        try
        {
            Console.WriteLine("In try");
            throw new Exception();
        }
        catch (Exception)
        {
            Console.WriteLine("In catch");
        }
        Console.WriteLine("After try..catch");
        Console.Read();
    }
}

AppDomainを使った方法は知りませんでした。こんなのもあるんだ。ただ、出題者が求めている回答とは違いそうな感じです。

(追記) やっぱAppDomainの方法で正解な気が。「buffer magic required.」ってとこだけに目がいってました。