黑马程序员技术交流社区

标题: java中函数内throw抛出异常 和 不抛有什么区别呢? [打印本页]

作者: 苏格拉底的弟子    时间: 2012-1-6 10:34
标题: java中函数内throw抛出异常 和 不抛有什么区别呢?
本帖最后由 苏格拉底的弟子 于 2012-1-7 22:42 编辑

这个函数内部throw,,抛不抛不都一样吗?  反正编译时都可以通过,都在运行时在报错的,,,,    而throws 特点在于编译都不会通过.这就有区别于不抛了。
作者: 罗利民    时间: 2012-1-6 11:41
有时候有些错误在jvm看来不是错误,比如说
int age = 0;
age = -100;
System.out.println(age);
很正常的整形变量赋值,但是在我们眼中看来就不正常,谁的年龄会是负的呢。
所以我们需要自己手动引发异常,这就是throw的作用
int age = 0;
age = -100;
if(age<0)
{
Exception e = new Exception();//创建异常对象
throw e;//抛出异常
}
System.out.println(age);


作者: zhangdingdinghm    时间: 2012-1-6 13:00
throw 用来抛出异常
throws 用来标识可能抛出的异常
public class Person {
public void display() throws Exception{
System.out.println("hello everyone");
}
}
public class Test {
public static void main(String[]args){
Person person = new Person();
//在Person中的display方法抛出了异常,在调用display方法是需要捕捉
try {
person.display();
} catch (Exception e) {
e.printStackTrace();
}
}
}
//在调用方法时,如果有用到用throws标识了异常的方法,程序最终被运行之前必须要被捕捉
作者: 苏格拉底的弟子    时间: 2012-1-7 11:32
还有什么容易理解的说法吗
作者: 刘博    时间: 2012-1-7 11:36
抛出异常可以给人家提示出信息,人家可以知道哪错了.
一切用户至上
作者: 苏格拉底的弟子    时间: 2012-1-7 22:45
哈哈  原来这样啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2