 |
|
 |
|
NullSafe Features
Detecting NULL-pointer exceptions is useful, but without the features below
the task of removing them could be overwhelming. You need flexibility in
strictness, deployment, and how to address "errors" that you know really
aren't errors.
- Extremely low false-positive rate
- False-positives are the death of any analysis tool. If you spend
half your time changing your code just to appease a tool,
you're unhappy, unproductive, and probably making your code harder to read.
- Source code optional
- A complete analysis must be able to penetrate any class files, any
jars, whether or not you have the source code, whether or not you
have accompanying JavaDoc. If code is present additional features are available, but source
code is never required.
- JavaDoc annotations
- Sometimes you need to be able to say "I don't want to check for
null input because it's against my method's contract to pass in
null in the first place. If null is passed in, I should
throw NullPointerException."
Learn about NullSafe JavaDoc annotations
and other features that let you do exactly this.
- Highly configurable levels of strictness
- Introducing a tool like NullSafe might uncover thousands of possible
errors, but it's usually not practical to address them all right away.
NullSafe exposes many options for what kinds of errors to check for
and how strict, and you can even tune the rules for a class or method
using JavaDoc. You have
granular control over what the tool will enforce.
- Deep function-call analysis
- It's not enough to just look a function in isolation. If you don't
dig into the functions it calls and fully understand all the possible
inputs and outputs, the tool will either miss exceptions or give
false-positives.
- Tool support for Null-Safe Compliance levels
- The Null-Safe Compliance levels are a vocabulary to describe just
how "null-safe" your class, package, or module really is. As a report,
it can summarize the state of all your code; as a configuration in the
tool you can enforce different levels of strictness for different parts
of the code.
- On-disk cache
- Large projects can take a long time to analyze, yet most changes
to source code are incremental. An intelligent on-disk cache
speeds up NullSafe so incremental changes inside your IDE or
editor can be checked quickly and efficiently. You can always
disable or clear the cache if you wish.
|
 |
 |
 |