您的位置:首页 > 职场人生

AS没有提示异常处理,需要程序员主动处理异常的一个情况

2016-07-25 21:38 369 查看
题外话:谁能告诉我Integer.parseInt为什么没有显式抛出异常,而numnber format exception是往往发生的

java的异常分为RuntimeException和Exception,

RuntimeException为运行时异常,可以不用try {}catch或throws

而Exception异常就必须用try{} catch或throws

继承Exception的异常,如FileNotfoundException是必须要用try catch或throws的,

所以你没捕捉的话eclipse会提示你用try catch捕捉异常。

而继承RuntimeException的异常不一定要进行捕捉异常,所以eclipse不会提示你用try catch。

numnber format exception继承了RuntimeException为运行时异常,可以不显示进行捕捉。

Exception类异常才是必须显示进行捕捉的。

public void onClick(View v) {
switch (v.getId()){
case R.id.button_ok:
String player = editText_player.getText().toString();
int score =0;
int level =0;

 //下面两行如果不用异常包裹 会怎样???logcat 报 NumberFormatException 数字格式异常,但是为什么编程时不提示?
try {
score = Integer.parseInt(editText2_score.getText().toString());
level = Integer.parseInt(editText3_level.getText().toString());
} catch (NumberFormatException e) {
Log.d("Tt", "onClick: gtttt");
e.printStackTrace();
}

addGamePlayer(player,score,level);
break;
}
}

private void addGamePlayer(String player, int score, int level) {
if(TextUtils.isEmpty(player)){ // 为什么不能直接 mainactivity.this?
Toast.makeText(getActivity(), "玩家名称不能为空", Toast.LENGTH_SHORT).show();
return;
}
GamePlayer gamePlayer = new GamePlayer(null,player,score,level);
gamePlayerAddListener.add(gamePlayer);
Toast.makeText(getActivity(), "添加成功", Toast.LENGTH_SHORT).show();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: