public static void main(String args[])throws Exception{
//code块
}有些方法中会有异常丢出来 但是为什么在main()中throws Exception就可以编译通过了 而不写就编译不过?
另外为什么即使有异常要丢出 不处理也可以执行 反而catch了就会出现这个那个异常 程序终止了...?
//code块
}有些方法中会有异常丢出来 但是为什么在main()中throws Exception就可以编译通过了 而不写就编译不过?
另外为什么即使有异常要丢出 不处理也可以执行 反而catch了就会出现这个那个异常 程序终止了...?
JAVA中异常的种类很多(具体的种类和作用以及用法请查阅相关资料)一部分是需要你手动处理的异常,例如
IOException 就是输入输出异常 这类异常 如果你调用了 IO相关的类或者方法那么你就要对这个异常进行处理,throws或者try catch,否则的话就会出现编译不通过 不管是main方法还是其他什么方法都是一样的。
而有些异常 系统会自动去捕获它 即使你不做throws 或者try catch 编译也能通过,举个例子NullPointerException空指针异常,这个我估计是学JAVA的人总会碰到的异常,如果楼主是初学没遇到过,以后肯定会遇到的(这里就当成例子具体意思不做解释了 要写敲太多字的。。)这个异常即使你没有做throws或者try catch系统也可以自动捕获到,所以即使你不去做处理 编译也是可以通过的。
第二个问题
throws Exception的意思是抛出一个异常,交给JAVA去处理。
至于try catch,try 是捕获一个异常然后在catch 中做你想要的相应处理。
所以楼主后面说的话出现了一个误区就是throws其实也是处理异常的方法 只不过你是抛出去交给JAVA虚拟机去处理了。而try catch是你自己处理的 至于会出现什么信息 取决于你的catch里是怎么写的。另外说一下,异常在应用中不管是throws和try catch其主要目的是停止异常语句之后的代码执行,这才是异常最重要的作用,记住这个异常就不是什么难题了,希望我的回答能对楼主学习JAVA起到一定的帮助。
throws Exception是不处理异常,并将其抛给上一级(调用它的方法),mian方法里如果不try...catch可以继续往上抛给java虚拟机,建议在本方法中处理