为什么通过方法抛出一般异常在Java中是不好的做法?
public class MyClickableFragment {
public void initOnClickListiner(View clickableView) {
clickableView.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
ClickedButtonInsideFragmentEvent event = new ClickedButtonInsideFragmentEvent();
// add what you want to your event
eventBus.post(event);
}
));
}
@Subscribe
public void onEvent(ClickedButtonInsideFragmentEvent event) {
// Do what you want to do
}
}
答案 0 :(得分:1)
当您通过方法抛出异常时,通常应该知道它是什么类型的异常。如果抛出一般异常而不是特定异常,则在引发异常(如果引发异常)时将丢失异常的特定细节。
例如,Float.parseFloat()抛出:
1)NullPointerException - >如果字符串为空
2)NumberFormatException - >如果字符串不包含可解析的浮点数。
如果是扔一般"例外"而不是" NullPointerException"和" NumberFormatException",无法知道是否引发了异常,因为字符串为null或字符串包含不可解析的浮点值。