为什么不将此非法字符异常解析为类型?
Why is this Illegal Character Exception not being resolved to a type?
对于一个作业,我必须输入一个字符串并将其反转,同时如果字符串中的字符不是字母、数字或白色则抛出非法字符异常 space。我的教授说不需要方法抛出子句。
这是我的代码
import java.util.*;
import java.io.*;
public class reverse3
{
public static void reverse(String x)
{
char j;
String reversedString;
for(int i = 0; i < x.length(); i++)
{
try
{
if(!Character.isDigit(x.charAt(i)) && !Character.isLetter(x.charAt(i)) && !Character.isWhitespace(x.charAt(i)))
{
throw ( new IllegalCharacterException("Illegal Character in String"));
}//end if
else if(Character.isDigit(x.charAt(i)) && Character.isLetter(x.charAt(i)) && Character.isWhitespace(x.charAt(i)))
{
j = x.charAt(i);
j = reversedString.charAt(i - 1);
}//end else if
}//end try
catch(IllegalCharacterException e)
{
System.out.println(e.getMessage());
}//end catch
}//end for loop
}//end method
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
String s;
System.out.println("Please enter a string");
s = keyboard.next();
reverse(s);
}//end main
}//end class
我一直在第 15 行和第 23 行收到此错误
错误:IllegalCharacterException 无法解析为类型
我想你正在寻找 IllegalArgumentException
new IllegalArgumentException("Illegal Character in String"));
Thrown to indicate that a method has been passed an illegal or
inappropriate argument.
否则,您可以根据需要定义自己的 class,但我看不到附加值,因为可以自定义 IllegalArgumentException
的消息。
public class IllegalCharacterException extends Exception {
public IllegalCharacterException(String msg) {
super(msg);
}
}
您的代码还需要 else
块。
因为在您的代码 else if
部分中,一次无法匹配 3 种类型。
而Illegal Character Exception
实际上是IllegalArgumentException
。如果您想指定实际问题,则可以使用 IllegalArgumentException
。另一方面,您也可以使用 Exception
。
对于一个作业,我必须输入一个字符串并将其反转,同时如果字符串中的字符不是字母、数字或白色则抛出非法字符异常 space。我的教授说不需要方法抛出子句。
这是我的代码
import java.util.*;
import java.io.*;
public class reverse3
{
public static void reverse(String x)
{
char j;
String reversedString;
for(int i = 0; i < x.length(); i++)
{
try
{
if(!Character.isDigit(x.charAt(i)) && !Character.isLetter(x.charAt(i)) && !Character.isWhitespace(x.charAt(i)))
{
throw ( new IllegalCharacterException("Illegal Character in String"));
}//end if
else if(Character.isDigit(x.charAt(i)) && Character.isLetter(x.charAt(i)) && Character.isWhitespace(x.charAt(i)))
{
j = x.charAt(i);
j = reversedString.charAt(i - 1);
}//end else if
}//end try
catch(IllegalCharacterException e)
{
System.out.println(e.getMessage());
}//end catch
}//end for loop
}//end method
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
String s;
System.out.println("Please enter a string");
s = keyboard.next();
reverse(s);
}//end main
}//end class
我一直在第 15 行和第 23 行收到此错误 错误:IllegalCharacterException 无法解析为类型
我想你正在寻找 IllegalArgumentException
new IllegalArgumentException("Illegal Character in String"));
Thrown to indicate that a method has been passed an illegal or inappropriate argument.
否则,您可以根据需要定义自己的 class,但我看不到附加值,因为可以自定义 IllegalArgumentException
的消息。
public class IllegalCharacterException extends Exception {
public IllegalCharacterException(String msg) {
super(msg);
}
}
您的代码还需要 else
块。
因为在您的代码 else if
部分中,一次无法匹配 3 种类型。
而Illegal Character Exception
实际上是IllegalArgumentException
。如果您想指定实际问题,则可以使用 IllegalArgumentException
。另一方面,您也可以使用 Exception
。