项目中的异常总结

JAVA中常见异常小结

1、java.lang.ArithmeticException

算术运算异常,例如除数为0,所以引发了算数异常

 

2、Java.lang.StringIndexOutOfBoundsException: 

这是截取字符串substring()产生的下标越界异常。原因是可能是字符串为空,或长度不足1

 

3、Java.lang.NullPointerException空指针异常

出现该异常的原因在于某个引用为null,但却调用了它的某个方法,这时就会出现该异常

 

4、ClassCastException

类型强制转换异常,例如:String str = "a";Integer num =(Integer )str;

 

5、IllegalArgumentException

传递非法参数异常,此异常表明向方法传递了一个不合法或不正确的参数。你看看传值的方法是否参数不正确

 

6、NumberFormatException

数字格式异常,例如:String str = "a";Integer.parseInt(str);

 

7、ClientAbortException: java.io.IOException异常

原因是由于服务器正在处理http请求,正在输出内容时,用户关闭了浏览器,造成了ClientAbortException异常。它属于I/O异常中比较常见的一种。

 

8、java.lang.classnotfoundexception

  这个异常是很多原本在jb等开发环境中开发的程序员,把jb下的程序包放在wtk下编译经常出现的问题,异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可,
如果是在jb下做的程序包,一般都是默认加上package的,所以转到wtk下后要注意把package的路径加上。

 

 

9、ClientAbortException  Caused by: java.NET.SocketException: Connection reset by peer: socket write error

这种异常已比较常见,通常有以下几种情况:

服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;客户关掉了浏览器,而服务器还在给客户端发送数据

 

10、ArrayStoreException

向数组中存放与声明类型不兼容对象异常,例如:Object x[] = new String[3];x[0] = new Integer(0);

 

11、NegativeArraySizeException

创建一个大小为负数的数组错误异常,例如int[] arr = new int[10];int i = arr[-1];

 

12、SecurityException

安全异常,例如:Android的权限异常,运行java的程序提示Missing requited Permissions manifest attribute in main jar等

 

13、EOFException

文件已结束异常

 

14、FileNotFoundException

文件未找到异常

 

15、SQLException

操作数据库异常

 

16、NoSuchMethodException

方法未找到异常

 

17、java.lang.ArrayIndexOutOfBoundsException

数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。

 

18、java.lang.IllegalAccessException

违法的访问异常。当应用试图通过反射方式创建某个类的实例、访问该类属性、调用该类方法,而当时又无法访问类的、属性的、方法的或构造方法的定义时抛出该异常。

 

19、java.lang.IllegalMonitorStateException

违法的监控状态异常。当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常。

 

20、java.lang.IllegalStateException

违法的状态异常。当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常。

 

21、java.lang.IllegalThreadStateException

违法的线程状态异常。当县城尚未处于某个方法的合法调用状态,而调用了该方法时,抛出异常。

 

22、java.lang.InstantiationException

实例化异常。当试图通过newInstance()方法创建某个类的实例,而该类是一个抽象类或接口时,抛出该异常。

 

23、java.lang.InterruptedException

被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。

 

24、java.lang.NoSuchFieldException

属性不存在异常。当访问某个类的不存在的属性时抛出该异常。

 

25、java.lang.RuntimeException

运行时异常。是所有Java虚拟机正常操作期间可以被抛出的异常的父类。

 

26、java.lang.TypeNotPresentException

类型不存在异常。

 

27、com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`mydb`.`tb_room`, CONSTRAINT `room_hotel_id` FOREIGN KEY (`room_hotel_id`) REFERENCES `tb_hotel` (`hotel_id`) ON DELETE NO ACTION ON UPDATE NO ACTION)

外间关联未允许级联操作异常,cascade="all",可以允许级联操作。

 

28、org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'studentService' defined in file 

原因:StudentService未标注@component找不到对象

 

29、org.hibernate.engine.jndi.JndiException: Error parsing JNDI name []

原因一:<session-factory name="">默认设置了name属性为空,去掉该属性。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot项目,我们可以使用注解和事务管理器来控制事务。首先,我们需要在需要控制事务的方法上添加注解,比如`@Transactional`。这样,当方法执行时,Spring会自动为该方法开启一个事务。同时,我们还需要注入一个事务管理器,可以使用`@Resource`注解来实现。\[1\] 在方法执行过程,如果一判定事务执行成功,我们可以使用`platformTransactionManager.commit(transactionStatus)`来提交事务。如果发生异常或者需要回滚事务,我们可以使用`platformTransactionManager.rollback(transactionStatus)`来回滚事务。\[2\] 如果我们需要自定义事务的传播行为,可以创建一个事务配置对象,并设置不同的事务传播行为,比如`PROPAGATION_REQUIRES_NEW`表示每次开启一个新的事务。然后,我们可以通过`platformTransactionManager.getTransaction(dt)`来获取事务状态。\[3\] 总结起来,在Spring Boot项目控制事务,我们需要使用`@Transactional`注解来标记需要控制事务的方法,同时注入一个事务管理器来管理事务的提交和回滚。如果需要自定义事务的传播行为,可以创建一个事务配置对象并设置相应的传播行为。 #### 引用[.reference_title] - *1* *2* *3* [springboot 手动控制事务](https://blog.csdn.net/china_snowman/article/details/126929272)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值