有关Java的RuntimeException
话说JAVA的RuntimeException可以不处理,但是为什么程序出了这错误不往下执行了?例如ArrayIndexOutOfBoundException...
话说JAVA 的 Runtime Exception 可以不处理,但是为什么程序出了这错误不往下执行了?例如ArrayIndexOutOfBoundException
展开
1个回答
展开全部
如果一个新手去一家软件公司面试,运行时异常与编译时异常是有很大概率要被问到的,这些属于基本概念。
1.RuntimeException,也就是运行时异常,表示你的代码本身存在BUG,比如你提到的ArrayIndexOutOfBoundsException,数组下标越界,这个属于代码有问题,数组定义的长度不够实际使用,不处理肯定会报错,如果你操作某个模块发现能正常运行,那只是因为代码还没跑到这个错误的地方而已。。控制台一旦报RuntimeException,就必须要处理。。没有例外的。而且,处理RuntimeException,不是try-catch能解决的。。try-catch在这里使用毫无意义。
2.不是RuntimeException,就是编译时异常,异常只有这两种了。比如你在处理文件流时的I/O问题,就属于编译时异常。这个时候用thr{}catch 来捕获或者 throws即可。
3.error,就不在这里赘述了。
根据实际开发经验的结论,纯手敲。。希望采纳
1.RuntimeException,也就是运行时异常,表示你的代码本身存在BUG,比如你提到的ArrayIndexOutOfBoundsException,数组下标越界,这个属于代码有问题,数组定义的长度不够实际使用,不处理肯定会报错,如果你操作某个模块发现能正常运行,那只是因为代码还没跑到这个错误的地方而已。。控制台一旦报RuntimeException,就必须要处理。。没有例外的。而且,处理RuntimeException,不是try-catch能解决的。。try-catch在这里使用毫无意义。
2.不是RuntimeException,就是编译时异常,异常只有这两种了。比如你在处理文件流时的I/O问题,就属于编译时异常。这个时候用thr{}catch 来捕获或者 throws即可。
3.error,就不在这里赘述了。
根据实际开发经验的结论,纯手敲。。希望采纳
追问
所谓RuntimeException可以“不处理”是指可以不用try--catch不捕获它照样可以编译通过,而不是说真的出现这种异常时可以抛出一个异常之后继续往下执行吧,而另一类异常则必须在代码中尝试用try--catch处理,否则无法编译通过。是这样的吗?
追答
yes,这样理解没问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询