if(某个条件){
   //强制抛出可被检测的异常
     throw new Exception("我抛出的异常");
}这样你的自定义异常就可以向外传播然后在调用那个方法的时候,必须捕捉,或者再次向外传播,
最终要处理的。

解决方案 »

  1.   

    void testMethod() throws Exception {
      try {
        //do something
        throw new Exception("test exception");
      } catch (Exception e) {
        throw e;
      }
    }或者
    void testMethod() throws Exception {
      try {
        //do something
        throw new SuperException("test exception"); //SuperException异常类
      } catch (SubException e) { //SubException 是SuperException的子类
        //handle sub exception
      }
    }
      

  2.   

    我的意思是:如果异常一旦被捕获就会跳出我们的正常运行,是我下面的事情都没发作。上面的也还是那样,我的意思是能不能让java不跳出我的正常运行?
      

  3.   

    我们的错误只是我们自己定义的一些输入错误,我不是不处理,是希望能不干扰我的程序的正常运行,譬如:处理完了以后还能回来,但java已经不支持goto了,不只有没有别的办法能实现它?
      

  4.   

    try
    {
    //do something
    }
    catch(Exception e)
    {
    try
    {
    //do something 
    }
    catch(Exception e1)
    {
    try
    {
    //do something
    }
    catch(Exception e2)
    {
    try
    {
    //do something
    }
    catch(Exception e3)
    {
    ......
    //处理 exception e3
    }

    //处理 exception e2
    }

    //处理 exception e1
    }
    //处理 exception e
    }
      

  5.   

    那你索性每个有可能抛出异常的语句都设置一个try...catch好了,这样肯定可以
    不过代码看起来可就会有点那个了.
      

  6.   

    有关异常的处理和楼主所提出的问题
    建议看看《高质量java程序设计》(电子工业出版社)里面有详细的分析
      

  7.   

    RAYLI的方法也不能返回,那样的程序对于我如果想要执行多重循环是没有办法是适应。
      

  8.   

    try {}catch (){}finally {}
      

  9.   

    换个思考方式
    不要总盯着异常处理
    不是个好习惯"我们现在只是使用这种方式来处理错误,也不是不处理,只是说处理后还能返回"你可以先检查输入错误,然后做适当处理后作为参数传给你的函数
    例如
    if(a==null){
     a = new xxxx();
    }如果你想在函数抛出异常后再作处理,例如catch(Exception e){ a=new xxx() //goback here}这类的,我觉得这个是一个设计逻辑的问题。不要设计lazy class