gpt4 book ai didi

java - 异常而不是编译器错误

转载 作者:行者123 更新时间:2023-12-01 08:09:48 25 4
gpt4 key购买 nike

我预计这个程序会给我编译错误,但它编译成功,并且在运行它时出现运行时异常。

class substr11
{

public static void main(String args[])
{

String s = "abcde";

System.out.println(s.substring(1,-1));

}


}

编译错误应该能够解析(字符串在body本身中初始化)并发现这个字符串操作会导致编译错误,对吧?有人可以告诉我为什么它没有抛出编译错误吗?

线程“main”中的异常 java.lang.StringIndexOutOfBoundsException: String index 超出范围:-2 在 java.lang.String.substring(来源未知) 在 substr11.main(substr11.java:9)

最佳答案

编译错误是指编译器无法编译代码(语法错误、缺少符号等)。

您的程序中情况并非如此,您将两个 int 传递给 String#substring正如预期的那样,并且您没有遗漏任何内容(没有遗漏类,括号没问题,分号也符合预期),那么编译器为什么要关心呢?

如果代码已编译,但由于某些异常(如 ArrayIndexOutOfBounds )而崩溃,您会收到异常

关于java - 异常而不是编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18374373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com