I am up for throwing NPE rather than 'assert abc != null' because it is often pretty difficult what variable caused NPE from the stack trace when assertion is disabled. It's disabled by default AFAIK.
I favour throwing NPE, IllegalArgumentException or IllegalStateException depending on the particular case.
It's disabled by default AFAIK.
yes, you're correct.