@@ -131,12 +131,6 @@ Add `CheckedExceptions.settings.json`:
131131
132132``` json
133133{
134- // If true, exceptions will not be read from XML documentation (default: false).
135- "disableXmlDocInterop" : false ,
136-
137- // If true, control flow analysis, with redundancy checks, is disabled (default: false).
138- "disableControlFlowAnalysis" : true ,
139-
140134 // Exceptions to completely ignore during analysis (Glob pattern).
141135 "ignoredExceptions" : [
142136 " System.*" ,
@@ -148,10 +142,19 @@ Add `CheckedExceptions.settings.json`:
148142 "informationalExceptions" : {
149143 "System.IO.IOException" : " Propagation" ,
150144 "System.TimeoutException" : " Always"
151- }
145+ },
146+
147+ // If true, exceptions will not be read from XML documentation (default: false).
148+ "disableXmlDocInterop" : false ,
149+
150+ // If true, control flow analysis, with redundancy checks, is disabled (default: false).
151+ "disableControlFlowAnalysis" : true
152152}
153153```
154154
155+ > ** Control flow analysis** powers redundancy checks (e.g. unreachable code, redundant catches, unused exception declarations).
156+ > Disabling it may improve analyzer performance slightly at the cost of precision.
157+
155158Register in ` .csproj ` :
156159
157160``` xml
@@ -164,17 +167,23 @@ Register in `.csproj`:
164167
165168## 🔍 Diagnostics
166169
167- | ID | Message |
168- | ---------- | --------------------------------------------------------- |
169- | ` THROW001 ` | ❗ Unhandled exception: must be caught or declared |
170- | ` THROW003 ` | 🚫 Avoid declaring general ` Exception ` in ` [Throws] ` |
171- | ` THROW004 ` | 🚫 Avoid throwing exception base type ` Exception ` |
172- | ` THROW005 ` | 🔁 Duplicate declarations of the same exception type in ` [Throws] ` |
173- | ` THROW006 ` | 🧬 Declared on override, missing from base |
174- | ` THROW007 ` | 🧬 Declared on base, missing from override |
175- | ` THROW008 ` | 📦 Exception already handled by declaration of super type in ` [Throws] ` |
176- | ` THROW009 ` | 🧹 Redundant catch clause |
177- | ` THROW010 ` | ⚠️ Throws attribute is not valid on full property declarations |
170+ | ID | Message |
171+ | ------------| -------------------------------------------------------------------------|
172+ | ` THROW001 ` | ❗ Unhandled exception: must be caught or declared |
173+ | ` THROW002 ` | ℹ️ Ignored exception may cause runtime issues |
174+ | ` THROW003 ` | 🚫 Avoid declaring exception type ` System.Exception ` |
175+ | ` THROW004 ` | 🚫 Avoid throwing exception base type ` System.Exception ` |
176+ | ` THROW005 ` | 🔁 Duplicate declarations of the same exception type in ` [Throws] ` |
177+ | ` THROW006 ` | 🧬 Incompatible Throws declaration (not declared on base member) |
178+ | ` THROW007 ` | 🧬 Missing Throws declaration for base member's exception |
179+ | ` THROW008 ` | 📦 Exception already handled by declaration of super type in ` [Throws] ` |
180+ | ` THROW009 ` | 🧹 Redundant catch typed clause |
181+ | ` THROW010 ` | ⚠️ ` [Throws] ` is not valid on full property declarations |
182+ | ` THROW011 ` | 📄 Exception in XML docs is not declared with ` [Throws] ` |
183+ | ` THROW012 ` | 🧹 Redundant exception declaration (declared but never thrown) |
184+ | ` THROW013 ` | 🧹 Redundant catch-all clause (no remaining exceptions to catch) |
185+ | ` THROW020 ` | 🛑 Unreachable code detected |
186+ | ` IDE001 ` | 🙈 Unreachable code (hidden diagnostic for editor greying) |
178187
179188## 🛠 Code Fixes
180189
@@ -190,11 +199,12 @@ The analyzer offers the following automated code fixes:
190199
191200## ✨ Advanced Features
192201
193- - Supports lambdas, local functions, accessors, events
194- - Analyzes exception inheritance trees
195- - Merges ` [Throws] ` with ` <exception> ` from XML docs
196- - Handles nullability context (` #nullable enable ` )
197- - Understands standard library exceptions (e.g. ` Console.WriteLine ` → ` IOException ` )
202+ * ** Lambdas, local functions, accessors, events** – full support across member kinds
203+ * ** Exception inheritance analysis** – understands base/derived exception relationships
204+ * ** XML documentation interop** – merges ` [Throws] ` with ` <exception> ` tags from external libraries
205+ * ** Nullability awareness** – respects ` #nullable enable ` context
206+ * ** Standard library knowledge** – recognizes common framework exceptions (e.g. ` Console.WriteLine ` → ` IOException ` )
207+ * ** Control flow analysis** – detects whether exceptions are reachable, flags redundant ` catch ` clauses, and reports unreachable code caused by prior throws or returns
198208
199209---
200210
0 commit comments