java异常体系分为错误和异常。
(1)错误就是error,是程序解决不了的,例如OOM内存溢出,JVM运行时数据区:方法区、堆、虚拟机栈、本地方法栈、程序计数器中只有程序计数器不会OOM。
(2)异常就是Exception,主要有:runtime exception、ioexception、自定义异常、并发修改异常
- runtime exception就是运行时异常:主要包括空指针(例如:没加@service、@Autowire注解、从数据库中查到的数据返回为空等)、数组越界、除0异常。这个异常有个很好的解决方法就是先if判断在写程序。
- io exception是读、写文件不存在。依赖的是电脑环境,这个异常不能用if判断解决,更好的方法是使用try、catch包起来,或者throw抛出异常。
- 自定义异常,继承Exception就行了。
- 并发修改异常,在遍历一个集合的时候又修改了它。
map1.forEach((s,c)->{if(s=='a'){map1.put('0',0);return;}});