В чем ошибка в этой Java-программе?
Компилятор не выполняет catch
часть, когда значение не введено:
import java.util.Scanner;
import java.lang.*;
public class Ruff {
public static void main(String[] args)
{
String a;
Scanner scanf=new Scanner(System.in);
System.out.println("Enter your name!!");
a=scanf.nextLine();
try
{
if(a.toLowerCase().equals("Harsh"))
{
System.out.print("Good Name");
}
else
{
System.out.print("Ok!");
}
}
catch(Exception e)
{
System.out.print("Name Required");
}
}
}
1 ответ
Решение
Единственное возможное исключение для a
в коде NullpointerException
, но a
пустая строка не нулевой указатель Если пользователь не вводит значение. Вы должны проверить это значение вместо использования исключений:
if(a.equals("")) {
System.out.print("Name Required");
}
else {
// code of try block here ...
}