I am a big fan of using MVVM in WPF applications, but am finding, increasingly, that even seasoned developers frequently dispose of very good habits, in order to stay true to the pattern.
One such occurrence is is not using message boxes. A cardinal sin in MVVM, is ensuring that message boxes are never used in View Models. The end result is that one starts to see code like this.
If you don’t have a logging system for your exceptions then you should have, if you do then always ensure that you log the exception. During development, one instinctually starts to determine brittle code, and events where errors can occur and use try-catch blocks. The worst thing you can do here is nothing. It is better not to use the try-catch at all, and just let the application blow-up, because at least you know that there is a problem, and go about fixing it.
I really cannot sufficiently impress upon thee just how much of a bad practice this is, and the amount of time you or other developers that work on your project will spend trying to find obscure bugs that occur because you are swallowing exceptions, just because MVVM stipulates that message boxes should not be used, means they shouldn’t, they should!