java Java中的try catch影響性能嗎?該怎么處理?
Java中的try catch影響性能嗎?該怎么處理?Java中的Try catch不會(huì)影響性能。1. 每個(gè)類(lèi)后面都會(huì)有一個(gè)異常表,每個(gè)try-catch都會(huì)在此表中添加一行記錄。每條記錄有四個(gè)信息(
Java中的try catch影響性能嗎?該怎么處理?
Java中的Try catch不會(huì)影響性能。
1. 每個(gè)類(lèi)后面都會(huì)有一個(gè)異常表,每個(gè)try-catch都會(huì)在此表中添加一行記錄。每條記錄有四個(gè)信息(try-catch的起始地址和結(jié)束地址、異常處理的起始位、異常類(lèi)的名稱)。
2. 當(dāng)代碼在運(yùn)行時(shí)拋出異常時(shí),首先將拋出位置移到異常表中,以確定是否可以捕獲該異常(例如,查看該位置是否在任何列的起始位置和結(jié)束位置之間)。如果可以,運(yùn)行到異常處理的起始位置開(kāi)始處理。如果找不到異常,則返回原地,并將異常復(fù)制到父調(diào)用方。然后在異常表中查找父調(diào)用等。
1. 如果沒(méi)有例外,你就不會(huì)查表了。也就是說(shuō),是否編寫(xiě)try-catch就是是否存在異常表的問(wèn)題。如果沒(méi)有異常,那么編寫(xiě)try-catch不會(huì)消耗任何性能,因此不會(huì)使程序運(yùn)行變慢。
2. try的范圍大小實(shí)際上是exception表中兩個(gè)值(起始地址和結(jié)束地址)的差值,它不會(huì)影響性能。
在JAVA中捕獲異常后throw自定義異常是不優(yōu)雅的嗎?
事實(shí)上,這種方法在很多框架中都有使用
1。Rethrow
自定義異常,用于更好地隔離異常,識(shí)別異常類(lèi)型、ID、自定義消息和日志
2。對(duì)第三方庫(kù)的異常進(jìn)行打包和抽象,以保持與框架異常定義的一致性,方便框架處理不同的異常
3。Restful API,統(tǒng)一異常管理