public static void readInput(String str) {
char firstChar = str.charAt(0);
if(!isAlphabet(firstChar))
//throw exception
//continue process
}
第一个字符只能在 ASCII 字母表中 (65-122)。我应该为此抛出 IllegalArguementException
吗?
最佳答案
正确处理异常确实很棘手。我可以从我读到的智慧中提炼出的最佳实践是:
- 如果可以处理并恢复,则抛出已检查的异常。然后处理它。
- 如果无法处理,则抛出未经检查的异常。您的程序可能会停止/崩溃。
- 在整个计划中保持一致。使用 API 是非常愉快的,其中的方法清楚地描述了应该如何使用它们以及在某些情况下会抛出哪些异常。
IllegalArgumentException
是一个未经检查的异常,因为它继承自 RuntimeException
。我会将它用于参数无效并且情况无法恢复的情况(即我不能只要求用户提供新的有效参数)。如果我从提示中获取输入,我可能只是抛出一个已检查的异常,捕获它并提示用户输入新的输入。
关于java - 当字符串输入参数的第一个字符不是预期的字符时抛出什么异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47087378/