当前位置: 首页 > 知识库问答 >
问题:

为什么不抛出异常?

彭涵衍
2023-03-14

下面是我的代码。当我运行它时,我在线程“main”java.lang.IndexOutOfBoundsException:Index:3、Size:2中得到异常,而不是我的异常消息。谁能解释一下我做错了什么,为什么会这样?谢谢!

代码

public class Main {
    
        public static void main(String[] args) throws Exception{  
            ArrayList a= new ArrayList();
            a.add(10);
            a.add(20);
        
                a.get(3) ;
                throw new IndexOutOfBoundsException("sorry");
            
      }
}

共有1个答案

邢修明
2023-03-14

您的异常没有被抛出,因为它之前的行正在抛出异常并结束执行。ArrayList已经知道在尝试访问超出列表大小的元素时抛出IndexOutOfBoundsException,并且由于未捕获该元素,程序将结束,而不会继续到您的throw语句。

 类似资料:
  • 针对每个循环处理跳过迭代的控件的问题,我发现允许在不断变化的集合上进行迭代: 例如,以下内容: 投掷 InvalidOperationException:集合已修改;枚举操作可能无法执行。 然而,在a。Net窗体,您可以执行以下操作: 它跳过元素,因为迭代器运行在更改的集合上,而不会引发异常 错误?如果基础集合发生变化,迭代器是否需要抛出? 所以我的问题是为什么对不断变化的的迭代不会抛出Inval

  • 问题内容: 我陷入了这个非常奇怪的问题。在客户端中,我传递的对象是 在服务器中,我正在读取对象 我的问题是为什么我会出现EOF异常。我对对象输入流的理解是,当我调用readObject()时应该阻塞直到获得对象,这样才能知道是否达到了eof?请帮忙! 这就是我创建对象流的方式 另外,在我写完对象并刷新之后,我应该关闭流。我不会关闭它,因为对象是从代码的不同部分开始一个接一个地定期编写的。 问题答案

  • 问题内容: 我睡眠不足吗?以下代码 抛出此错误: 这绝对是行不通的!有人可以解释一下吗? 问题答案: 在规格中它说: 每当调用其origin-clean标志设置为false的canvas元素的toDataURL()方法时,该方法都必须引发SECURITY_ERR异常。 如果图像来自其他服务器,我认为您不能使用toDataURL()

  • null 为简洁起见,排除了getter和setter(用于所有字段)以及toString()。 我尽了最大的努力按照指导原则格式化代码,但它没有发生,请耐心等待。 @Entity@Table(name=“Products”)@XmlRootElement@NamedQueries({@NamedQuery(name=“Product.FindAll”,query=“从产品p中选择p”),@nam

  • 在try块中为未抛出异常子类的方法捕获异常,将无法编译。当我捕捉到异常时,它起作用了。它是如何工作的??

  • 问题内容: 直接的答案是因为s接口被指定为不会引发异常。但是为什么呢? 或换句话说:我必须依赖可以引发异常的函数。从理论上讲,这不应该发生。但是,如果发生这种情况,我希望它脱离我正在使用的整个函数(在中)。即我希望它的行为就像发生未处理的异常一样。 似乎这不可能以一种显而易见的自然方式进行(因为如果接口说它不能抛出异常,就不会)。 我该如何解决?用丑陋的try / catch并打印出异常,并希望我