抛出和捕获

gyh123 2004-01-03 07:34:58
请问各位高手,JAVA 里面“抛出”到底是怎么一回事。他是如何实现的。
...全文
54 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
haoqingshi 2004-01-03
  • 打赏
  • 举报
回复
异常抛出后,java运行是系统会寻找处理这一个异常的代码,寻找的过程从生成异常的代码块开始,沿着方法的调用栈逐层回溯,直到找到一个方法能够处理这个类型的异常,然后运行时系统把当前的异常对象交给这个方法进行处理,这就是捕获的过程
haoqingshi 2004-01-03
  • 打赏
  • 举报
回复
抛出是对异常的一种处理机制,在定义函数的时候就应该抛出异常,在函数体中,你可以不去捕获这个异常,但是如果调用到这个函数的话,你就必须要捕获这个异常,并且进行相应的处理
Wolf0403 2004-01-03
  • 打赏
  • 举报
回复
// Hello.java

public class Hello
{
void static Main(String[] argv)
{
throw new Exception("Exception throwed in Main()");
}
}

编译运行一下就知道了啦,哈哈。

2、 public void test() throws Exception 这个地方是说明这个函数可能抛出 java.lang.Exception 类型的异常,并不实际抛出一个异常。

if (n < 0) {
throw new Exception(); // 这里实际抛出了这个异常。
}
gyh123 2004-01-03
  • 打赏
  • 举报
回复
首先感谢各位高手的帮助。请问1: 如果抛出异常后系统如何处理
2:
public void test()throws Exception
......
if(n < 0){
throw new Exception();
}
对于这两个异常有何区别?抛出后又由谁去处理
我刚开始学,所以问的比较菜。麻烦各位了
seaman0916 2004-01-03
  • 打赏
  • 举报
回复
但是,必须注意的是:
如果在构造函数中可能有异常抛出,用第二种方法,必须当时就处理,以免出现出现有的变量没有初始化,出现空指针异常 !
seaman0916 2004-01-03
  • 打赏
  • 举报
回复
例如:
public void test() throws Exception { .... }
在调用这个test()方法时,必须
....
try{
test();
}catch(Exception e) {...... }
即如果被抛出,必须在调用的时候对可能出现的异常做处理.

public void test() {
try{
....
}catch(Exception e) {...... }
}
调用的时候只是:
test();
就行了.

只是处理位置不一样!
seaman0916 2004-01-03
  • 打赏
  • 举报
回复
补充一点,如果你抛出异常,这个时候可以不去理会,但是在调用这个函数是必须做相应的处理!
javakevin 2004-01-03
  • 打赏
  • 举报
回复
抛出异常是你在不知道会有什么情况要发生的时候给系统提个醒
而TRY···CATCH语句是你自己捕捉异常,里面添加你自己对异常的处理方法
网络咖啡 2004-01-03
  • 打赏
  • 举报
回复
抛出是对异常状况的一种提示

代码如下:
如果不允许变量n小于零,则当n小于零的时候,就抛出异常。
if(n < 0){
throw new Exception();
}
supersunyi 2004-01-03
  • 打赏
  • 举报
回复
try{

你的语句
} catch(Exception) {
如果出错 就执行这里的
}
就是说如果遇到一些你没有控制而出现的错误,这个时候你就需要捕捉了,还有一些你不能控制的错误也可能出现的时候,就要捕捉,还有别的捕捉的方式,你看看书

和vb里的on error goto ...一样

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧