Não há problema em colocar Nullpointerexcepção programaticamente?

Quando existe uma condição pós-condição, que o valor de retorno de um método não deve ser nulo, o que pode ser feito? ... } ? ou é melhor usar uma excepção definida pelo utilizador (como NullReturnValueException ) para tal condição?

Qual é a diferença entre `lançar novo erro` e `lançar algum objeto`?

quero escrever um manipulador de erros comum que irá apanhar erros personalizados lançados de propósito em qualquer ins ... ente? Ainda não explorei o lançamento de um objecto de erro. Há outra maneira além dos dois métodos acima mencionados?