java 运行时异常和受控异常
分别说明什么是运行时异常和什么是受控异常那什么时候该用运行时异常什么时候该用受控异常呢?小弟去一软件公司的时候面试就有这一题哦……...
分别说明什么是运行时异常和什么是受控异常
那什么时候该用运行时异常什么时候该用受控异常呢?
小弟去一软件公司的时候面试就有这一题哦…… 展开
那什么时候该用运行时异常什么时候该用受控异常呢?
小弟去一软件公司的时候面试就有这一题哦…… 展开
4个回答
展开全部
楼上两位兄弟都有些错误,下面是我的见解,好久没手打这么多,好累啊
受控异常就是checked Exception ,这些异常在你写代码时候必须用try{}catch语句抓住,或者throw抛出,不然代码编译时候就通不过。比如IOException ,SqlException,FileNotFoundExcption等等,
而运行时异常是你写代码的时候不需要catch,或者throw就可以通过编译的异常,一般由于程序员的错误引起的,比如NullPointException异常,数组越界异常,这些都是没法在 try catch中恢复的,异常需要程序员细心检查出错误。
而error是继承throwable接口,但和异常是不同的概念,error基本上就是jvm运行时内存耗尽,系统崩溃等等重大的错误,级别高于Exception,而且没法恢复
受控异常就是checked Exception ,这些异常在你写代码时候必须用try{}catch语句抓住,或者throw抛出,不然代码编译时候就通不过。比如IOException ,SqlException,FileNotFoundExcption等等,
而运行时异常是你写代码的时候不需要catch,或者throw就可以通过编译的异常,一般由于程序员的错误引起的,比如NullPointException异常,数组越界异常,这些都是没法在 try catch中恢复的,异常需要程序员细心检查出错误。
而error是继承throwable接口,但和异常是不同的概念,error基本上就是jvm运行时内存耗尽,系统崩溃等等重大的错误,级别高于Exception,而且没法恢复
展开全部
你说的RuntimeException吧?
RuntimeException和Java的异常throw机制有关系,简单的讲,这是由于Java语言的强制性约定和编码实际需要的折中。
Java语言规定对于全部异常(Throwable)均需要显式处理,程序要么选择声明Throws,要么选择catch。那么,对于运行时会出现的异常,比如:ArrayIndexOutOfBound、OutofMemory这类绝大部分语句都会出现的异常,写程序会很累,如下代码:
// OutofMemory
int array [] = new int [5] ;
// ArrayIndexOutOfBound
int i = array [1] ;
就要写try - catch,太麻烦了。
所以约定了这些异常为RuntimeException,可以不显式处理。
相比之下,C#就学乖了,任何异常都不需要显式处理,但这也是另一个极端,导致从函数声明上看不出来需要处理的异常。
Java的处理比较好一点。
RuntimeException和Java的异常throw机制有关系,简单的讲,这是由于Java语言的强制性约定和编码实际需要的折中。
Java语言规定对于全部异常(Throwable)均需要显式处理,程序要么选择声明Throws,要么选择catch。那么,对于运行时会出现的异常,比如:ArrayIndexOutOfBound、OutofMemory这类绝大部分语句都会出现的异常,写程序会很累,如下代码:
// OutofMemory
int array [] = new int [5] ;
// ArrayIndexOutOfBound
int i = array [1] ;
就要写try - catch,太麻烦了。
所以约定了这些异常为RuntimeException,可以不显式处理。
相比之下,C#就学乖了,任何异常都不需要显式处理,但这也是另一个极端,导致从函数声明上看不出来需要处理的异常。
Java的处理比较好一点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我只听过受控bean,没听过受控异常呀。。
不过想来应该差不多。。
运行时异常是在java程序在虚拟机中运行时产生的异常,比如1除以0的被除数为零的异常。
受控异常应该是说,异常是可控制的,我们可以根据条件的判断来手动抛出不同的异常。
不过想来应该差不多。。
运行时异常是在java程序在虚拟机中运行时产生的异常,比如1除以0的被除数为零的异常。
受控异常应该是说,异常是可控制的,我们可以根据条件的判断来手动抛出不同的异常。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
异常就两种 运行异常 , try catch异常 另外一个和异常同级叫 error
他问的你是try catch异常 看来你被绕进去了,
他问的你是try catch异常 看来你被绕进去了,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询