java - 当字符串输入参数的第一个字符不是预期的字符时抛出什么异常?

标签 java

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/

相关文章:

java - 如何以精确且简单的方式获得linux java的cpu负载百分比?

java - 正则表达式要求一种字母和一种非字母并且没有空格

java - 使用 QMessageBox 从选项列表中进行选择

java - Servlet 将响应转发给调用者/上一页

java - 返回有界通配符

java - Wifi 管理器和 WiFi 信息

java - 繁重处理期间的 LibGDX 加载屏幕

java - SoapUI项目执行后WebDriver异常

java - 将 JobIntentService 绑定(bind)到 Activity

java - Android 上的 TextToSpeech 初始化——如果失败怎么办?