title: Why win32 exception are not caught by c# exception handling mechanism
body: <p>I have a winforms application.Winforms start with Program.cs where we have main() defined.I have put this code in try-catch block.</p>
  
  <pre><code> [STAThread]
      static void Main()
      {
          try
          {
              Application.EnableVisualStyles();
              Application.SetCompatibleTextRenderingDefault(false);
              Application.Run(new frmSplash());
          }
          catch (Exception ex)
          {
              MessageBox.Show(ex.Message);
              if (ex.InnerException != null)
              {
                  MessageBox.Show(ex.InnerException.ToString());
              }
          }
      }
  </code></pre>
  
  <p>Whenever there is a win32 exception,this mechanism fails and unhandled exception message  is thrown and application crashes.<br>
  I have 2 questions regarding this code:</p>
  
  <p>1) Why win32 exceptions are not caught.</p>
  
  <p>2) Is it a good practice to catch exceptions at the highest level.</p>