TL;DR A method that can't do its job has three options: do it, throw , or return "I can't" as a value. What it must never do is return normally having done nothing. I gave a firewall abstraction two extra methods — enforces() and unavailableReason() — so "not implemented here" became something ...

Source: [Dev.to](https://dev.to/nasrulhazim/a-driver-that-quietly-does-nothing-is-worse-than-one-that-isnt-there-61m)

Sponsored