首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

几种常见的Runtime Exception

如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。...java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。...java.lang.IndexOutOfBoundsException 索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。...当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。...java.lang.StringIndexOutOfBoundsException 字符串索引越界异常。当使用索引值访问某个字符串的字符,而该索引值小于0或大于等于序列大小时,抛出该异常。

1.1K20

java的异常总结

java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。...java.lang.IndexOutOfBoundsException 索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。...当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。...java.lang.NegativeArraySizeException 数组大小为负值异常。当使用负数大小值创建数组时抛出该异常。...java.lang.StringIndexOutOfBoundsException 字符串索引越界异常。当使用索引值访问某个字符串的字符,而该索引值小于0或大于等于序列大小时,抛出该异常。

1.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

常见的几种RuntimeException

java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。...java.lang.IndexOutOfBoundsException 索引越界异常。当訪问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。...当某个线程处于长时间的等待、休眠或其它暂停状态,而此时其它的线程通过Thread的interrupt方法终止该线程时抛出该异常。...java.lang.NegativeArraySizeException 数组大小为负值异常。当使用负数大小值创建数组时抛出该异常。...java.lang.StringIndexOutOfBoundsException 字符串索引越界异常。当使用索引值訪问某个字符串的字符,而该索引值小于0或大于等于序列大小时,抛出该异常。

87810

Java中常见的异常类型

java.lang定义的未检查异常 异常 含义 ArithmeticException 算术错误,如除以零。 ArrayIndexOutOfBoundsException 数组索引超出边界。...java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。...java.lang.IndexOutOfBoundsException 索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。...当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。...java.lang.StringIndexOutOfBoundsException 字符串索引越界异常。当使用索引值访问某个字符串的字符,而该索引值小于0或大于等于序列大小时,抛出该异常。

2.2K40

JDK源码解析之 java.lang.Exception

java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。...java.lang.IndexOutOfBoundsException 索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。...当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。...java.lang.NegativeArraySizeException 数组大小为负值异常。当使用负数大小值创建数组时抛出该异常。...java.lang.StringIndexOutOfBoundsException 字符串索引越界异常。当使用索引值访问某个字符串的字符,而该索引值小于0或大于等于序列大小时,抛出该异常。

79510

异步编程 - 05 基于JDK的Future实现异步编程()_CompletableFuture

另外,toSring方法会非常方便地返回当前线程池的状态(运行状态、线程线程个数、激活线程个数、队列任务个数)。...另外,当线程池关闭或者内部资源被耗尽(比如当某个队列大小大于67108864时),再向线程池提交任务会抛出RejectedExecutionException异常。...(Suppliersupplier,Executor executor)方法允许我们使用自己制定的线程池来执行异步任务,代码如下: // 0.创建线程池 private static final...在整个异步任务的执行过程main函数所在线程是不会被阻塞的,等异步任务执行完毕后会回调设置的回调函数,在回调函数内,代码2.1表示如果发现异步任务执行正常则打印执行结果,否则打印异常信息。...这里代码3挂起了main函数所在线程,是因为具体执行异步任务的是ForkJoin的commonPool线程池,其中线程都是Deamon线程,所以,当唯一的用户线程main线程退出后整个JVM进程就退出了

23130

JavaSE学习总结(八)—— 异常处理(Exception)

异常不是错误 程序关键的位置有异常处理,提高程序的稳定性 二、掌握Java异常处理机制  Java的异常处理是通过5个关键字来实现的 try:尝试,把有可能发生错误的代码放在其中,必须有 catch:...//非法的监控状态异常 java.lang.IllegalMonitorStateException //非法的状态异常 java.lang.IllegalStateException //非法的线程状态异常...java.lang.IllegalThreadStateException //索引越界异常 java.lang.IndexOutOfBoundsException //实例化异常 java.lang.InstantiationException...//被中断异常 java.lang.InterruptedException //数组大小为负值异常 java.lang.NegativeArraySizeException //属性不存在异常...e.printStackTrace(); } try { System.out.println(div(3,0)

1.3K90

linux——管道详解

在Linux,该缓冲区的大小为1页,即4K字节,使得它的大小不象文件那样不加检验地增长。...否则,写入进程就休眠在 VFS 索 引节点的等待队列,接下来,内核将调用调度程序,而调度程序会选择其他进程运行。...当数据写入内存之后,内存被解锁,而所有休眠索引节点的读取进程会被唤 醒。 管 道的读取过程和写入过程类似。...反之,进程可 以休眠索引节点的等待队列中等待写入进程写入数据。当所有的进程完成了管道操作之后,管道的索引节点被丢弃,而共享数据页也被释放。...实际上这算不上什么限制,因为读和写操作是在不同的线程实现的。Linux 还支持命名管道。对这些数字的早期评论员建议我,为公平起见,应该比较 Linux 的命名管道和 Windows 的命名管道。

2.9K20

RuntimeException和Exception区别

重要的事情说三遍,因为不受检查,所以在代码可能会有RunTimeException时Java编译检查时不会告诉你有这个异常,但是在实际运行代码时则会暴露出来,比如经典的1/0,空指针等。...java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。...java.lang.IndexOutOfBoundsException 索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。...当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的###### interrupt方法终止该线程时抛出该异常。...java.lang.StringIndexOutOfBoundsException 字符串索引越界异常。当使用索引值访问某个字符串的字符,而该索引值小于0或大于等于序列大小时,抛出该异常。

1.1K10

线程你真的会了吗?

线程:进程的多条路径。 多线程是指有多条线程并发的执行。 并发:多条线程在同一时间段内交替执行。 并行:多条线程同时执行。...run方法是无法开启多线程的,jvm默认start()方法开启多线程,start()方法会默认调用重写的run()方法。...线程的名称 main方法所在的线程为主线程线程名为main   自定义的线程:Thread-0,Thread-1 默认格式:Thread-index 其中index从0开始 线程的名称可以设置...7sleep(ms) 休眠,毫秒值 8.start()开启线程的方法,会默认调用run()方法,进行线程的开启。...唤醒的线程不会立刻执行run方法,它们要再次等待CPU分配资源进入运行状态; 销毁:如果线程正常执行完毕后或线程被提前强制性的终止或出现异常导致结束,那么线程就要被销毁,释放资源; ?

23130

为什么要了解线程的生命周期?

如果处在运行状态的线程调用某个阻塞的API或等待某个事件条件可用,那么线程就会转换到休眠状态,注意:此时线程会释放CPU使用权,休眠线程永远没有机会获得CPU使用权,只有当等待事件出现后,线程会从休眠状态转换到可运行状态...终止状态 线程执行完或者出现异常 (被interrupt那种不算的哈,后续会说)就会进入终止状态,正式走到生命的尽头,没有起死回生的机会 接下来就来看看你熟悉又陌生,面试又经常被问到的Java 线程生命周期吧...,就是这三种状态在操作系统的眼中都是休眠状态,同样不会获得CPU使用权 看上图右侧【Java语言中的线程状态】,进一步简洁的说,除去线程生死,我们只要玩转 RUNNABLE 和休眠状态的转换就可以了,编写并发程序也多数是这两种状态的转换...,重点就是RUNNABLE与休眠状态的切换,接下来我们看一看,如何查看线程的状态,以及具体的代码触发点 如何查看线程处在什么状态 程序调用 getState() 方法 Thread 类同样存在...start(); t2.start(); Thread.sleep(1000); System.out.println((t2.getState())); System.exit(0)

28940

Java 常见面试题

elementData数组的大小会根据ArrayList容量的增长而动态的增长,具体的增长方式,请参考源码分析的ensureCapacity()函数。 (02) size 则是动态数组的实际大小。...如果在创建Vector时,指定了capacityIncrement的大小;则,每次当Vector动态数组容量增加时>,增加的大小都是capacityIncrement。...main线程交替运行,当i>10时,main停止运行,当t线程运行完成后,main线程才可以接着运行,Join()方法就是一个线程强制运行直至其死亡 } catch (InterruptedException...2、sleep方法 休眠线程 在程序中允许一个线程进行暂时的休眠,直接使用 Thread.sleep() 即可实现休眠。...(01) 注意,图中"主线程" 代表“主线程main”。"线程t1" 代表WaitTest启动的“线程t1”。 而“锁” 代表“t1这个对象的同步锁”。

29320

windows 线程

第二个参数是线程栈的大小,每个线程都有一个栈环境用来存储局部变量,以及调用函数,这个值可以给0,这个时候系统会根据线程调用函数情况动态的增长,但是如果需要很大的线程栈,比如要进行深层的递归,并且每个递归都有大量的局部变量和函数时...动态API法,TlsAlloc为每个全局变量分配一个TLS索引, TlsSetValue为某个索引设置一个值,TlsGetValue获取某个索引的值TlsFree释放这个索引 两中方式各有优缺点,第一种方式使用简单...} 上述代码,我们在主线程插入100个异步函数,虽然它们执行的都是同样的操作,然后让主线程休眠,SleepEx函数的第二个参数表示是否调用异步函数,如果填入FALSE,或者调用Sleep函数则不会调用异步函数...= CreateThread(NULL, 0, ThreadProc, NULL, 0, &dwThreadID); //让主线程休眠一段时间,一遍子线程能创建消息队列 Sleep(10...0, 0); //休眠一段时间让子进程能够执行完成 WaitForSingleObject(hThread, INFINITE); return 0; } 线程执行时间 在一些性能分析工具可能需要使用得到具体执行某一算法的函数的执行时间

1.7K20
领券