尝试捕捉块无法找出赶上java

问题描述:

关于格式化SORRY。我试图确定成绩是否合格,失败或无效等级。但是我无法弄清楚如何捕捉错误。尝试捕捉块无法找出赶上java

编辑:70-100或“s”或“S”=通过; 0-69或u或u =重拍;其他一切=无效。

这是我的代码:

import java.util.*; 

public class Demo 
{ 
public static void main(String [] args) 
    { 
    Scanner kb = new Scanner(System.in); 
    String total=""; 
    System.out.println("enter grade"); 
    total = kb.nextLine(); 

System.out.println(evaluateGrade(total)); 
} 
public static String evaluateGrade(String expr) 
{ 
String result =""; 
boolean invalid = false; 
int grade = Integer.parseInt(expr); 
try{ 
    if((grade <100 && grade >=70) || (expr.equalsIgnoreCase("s")) 
    { 
    result ="pass"; 
    } 
    else if((grade <70 && grade >0)|| expr.equalsIgnoreCase("u")) 
    { 
    result ="retake"; 
    } 
    else 
    {result="invalid"; 
    } 
} catch (Exception e) 
{ 

} 
return result; 
} 
    } 
+0

您应该在try-block中移动Integer.parseInt。你不应该捕获异常,而是更具体的NumberFormatException。 – faester

这是我的代码:

import java.util.*; 


class Demo{ 

public static void main(String [] args){ 

    Scanner kb = new Scanner(System.in);  
    System.out.println("enter grade"); 
    System.out.println(evaluateGrade(kb.next())); 
    kb.close(); // You need to ".close" your stuff 

} 

public static String evaluateGrade(String expr){ 

    String result =""; 
// boolean invalid = false; <--- This is not necessary 

    if(expr.equalsIgnoreCase("s")){ 
     return "pass"; 
    } 
    if(expr.equalsIgnoreCase("u")){ 
     return "retake";  
    } 
    try{ // Try to get a Integer on "grade" 
     Integer grade = Integer.valueOf(expr); 

     if((grade <= 100 && grade >=70)){ // 70 <= grade <= 100, and you forgot the ')' 
      result ="pass"; 
     } 
     else if((grade <70 && grade >=0)){ // 0 <= grade < 70 
      result ="retake"; 
     } 
     else{ 
      result="invalid"; 
     }  
    } 
    catch(NumberFormatException e){ // If "grade" is not a number, then you have this line 
     System.err.println("Your grade must be a NUMBER between 0 and 100."); 
     return "invalid"; // Return something to keep going with your code 
    } 
    return result; 
} 
} 

如果你不理解什么是你的代码发生的事情,把它写下来的纸。

祝您有美好的一天!