An argumentless throw statement is not allowed outside of a catch clause
A throw statement with no parameters can only appear in a catch clause that takes no parameters.
The following sample generates CS0156:
using System; namespace x { public class b : Exception { } public class a { public static void Main() { try { throw; // CS0156 } catch(b) { throw; // this throw is valid } } } }