In software, 80% or more of what we do is quaintly called “maintenance”: the act of repair.
The price of checked exceptions is an Open/Closed Principle1 violation. If you throw a checked exception from a method in your code and the catch is three levels above, you must declare that exception in the signature of each method between you and the catch. This means that a change at a low level of the software can force signature changes on many higher levels.
Note: OCP
What makes a clean test? Three things. Readability, readability, and readability. Readability is perhaps even more important in unit tests than it is in production code. What makes tests readable? The same thing that makes all code readable: clarity, simplicity, and density of expression. In a test you want to say a lot with as few expressions as possible.
Note: Sadly, my definition of what's readable is different when I'm writing the tests versus when I'm trying to read them later. I find myself doing complicated set-ups that make perfect sense at the time of writing, but take a few minutes of mental parsing a couple of months later.
To write clean code, you must first write dirty code and then clean it.
Note: The key is understanding that just because it works, does not mean it's done.