异常处理动手动脑
- 异常处理先执行try语句,catch处理异常,finally一定执行。
- 浮点数除以0不会引发异常
浮点数数字取值范围为无穷大和无穷小,除以0时候为无穷大,所以正常执行。
- CatchWho.java运行结果
- CatchWho2.java运行结果
异常会有相应catch捕获,不执行其他部分。
- Finally执行一定吗
存在System.exit(0);会直接终止执行,不执行finally语句。
编写程序,输入成绩判断优良。
package 成绩;
import java.util.Scanner;
public class score {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
while(true){
try{
System.out.println("请输入分数:");
String score=input.nextLine();
for(int i=0;i<score.length();i++){
if(!(score.charAt(i)>=48&&score.charAt(i)<=57)){
throw new MyException();
}
}
int s = Integer.parseInt(score);
String str="";
if(s<60)
str="不及格";
else if(s<70)
str="及格";
else if(s<80)
str="中";
else if(s<90)
str="良";
else if(s<100)
str="优";
else if (s>100||s<0)
throw new MyException();
System.out.println("分数等级为:"+str);
break;
}
catch(MyException e) {
e.mistake();
}
}
}
}
class MyException extends Exception{
public void mistake(){
System.out.println("你输入的数字不符合要求");
}
}