> How this is better then asserting it somewhere before actual matching?

Without some kind of magic source code analysis, we can't know if it's going to throw or not unless we call it.

I don't understand why there's so much confusion about this.