I see your point, but I don't think it matters much. We're inside the cmdlet, and our caller isn't .NET code, it's powershell itself. All powershell will do is catch and display the message. I think that we're better off concentrating on giving good error messages.