It is expected that some methods should be called with caution, but others, such as `ToString`, are expected to "just work". Throwing an exception from such a method is likely to break callers' code unexpectedly. An issue is raised when an exception is thrown from any of the following: * Event accessors * `Object.Equals` * `IEquatable.Equals` * `GetHashCode` * `ToString` * `static` constructors * Module initializers * `IDisposable.Dispose` * operators ``++==, !=, <, >, <=, >=++`` * `implicit` cast operators == Noncompliant Code Example ---- public override string ToString() { if (string.IsNullOrEmpty(Name)) { throw new ArgumentException("..."); // Noncompliant } //... ---- == Exceptions `System.NotImplementedException` and its derivatives are ignored. `System.InvalidOperationException`, `System.NotSupportedException`, and `System.ArgumentException` and their derivatives are ignored in event accessors. ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::message.adoc[] include::highlighting.adoc[] ''' == Comments And Links (visible only on this page) include::comments-and-links.adoc[] endif::env-github,rspecator-view[]