当我想抛出一个NullPointerException时,我会选择什么?try/catch vs if/else throw NullPointerException
1)
if(parameter != null){
// do something
} else {
Log.error("Reason for Exception.");
throw new NullPointerException();
}
2)
try{
// do something
} catch (NullPointerException npe) {
Log.error("Reson for Exception.");
throw npe;
}
没有,我会抛出一个'IllegalArgumentException',但我更喜欢第一个 – Pau
老实说...我从来不想手动触发'NPE',如果它是一种方法我宁愿抛出' IllegalArgumentException'那里。 – SomeJavaGuy
[有效的Java(https://books.google.hr/books?id=ka2VUBqHiWkC&pg=PA248&lpg=PA248&dq=effective+java+standard+exceptions&source=bl&ots=yZJoQmw0M0&sig=8BlDhQjQqy3g41tQCCS2Znuk_T8&hl=en&sa=X&ved=0ahUKEwi1-sqiub7QAhXKIsAKHWNXBaAQ6AEIPzAG#v= onepage&q&f = false)建议NPE,但我也在Kevin和Pau的一边。 –