Basically, by declaring the function with throw();
you tell the compiler that you are one hundred per cent certain that the function is not going to throw any exceptions, allowing the compiler to perform some optimizations. If your function throws an exception anyway, you're in trouble, since it most likely results in undefined behavior.