What are the best practices for exception handling in n-tier applications?
The application is a fat client based on MVVM pattern with .NET framework.
The only advice I can give is that the exception and overall error handling should be taken care at the design level, and not at the implementation level. Making sure that at least a proper framework is at place for error-handling is important. Adding exception code later, most probably will need the design change and hence many changes in the code than expected.