11 lines
786 B
Plaintext
11 lines
786 B
Plaintext
== Why is this an issue?
|
|
|
|
The point of having custom exception types is to convey more information than is available in standard types. But custom exception types must be `public` for that to work.
|
|
|
|
If a method throws a non-public exception, the best you can do on the caller's side is to `catch` the closest `public` base of the class. However, you lose all the information that the new exception type carries.
|
|
|
|
This rule will raise an issue if you directly inherit one of the following exception types in a non-public class:
|
|
|
|
* https://learn.microsoft.com/en-us/dotnet/api/system.exception[Exception]
|
|
* https://learn.microsoft.com/en-us/dotnet/api/system.systemexception[SystemException]
|
|
* https://learn.microsoft.com/en-us/dotnet/api/system.applicationexception[ApplicationException] |