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();
}
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();
}
相关文章推荐
- 二叉树的面试题
- JS面试题-算法台阶问题
- 面试题52: 构建乘积数组
- 成为高效程序员应该掌握的搜索技巧
- 剑指offer面试题30:用自定义堆实现
- java面试经历
- Google研究主管Peter Norvig:想当程序员吗?这里份成功“食谱”
- 记一次面试经历(互联网金融行业)
- 从程序员到事业单位再到公务员的一点感想
- C#面试-总结
- PHP工程师面试常见问题
- JAVA多线程和并发基础面试
- Java线程面试题
- 论初级程序员的自我修养
- 剑指offer面试题28-29
- 给年轻程序员的话
- 从今天开始,做一个测试工程师
- 让两个数进值互换 面试题
- 前端面试题答案的解答:html+css部分
- [转]海量数据处理面试题总结