如果捕获异常没有专门的处理,只是为了记录日志,那么异常究竟是这样
public void xxx() {
try {
...
...
...
} catch() {
...
}
}
捕获好还是这样
public void xxx() {
try {
...
} catch() {
...
}
try {
...
} catch() {
...
}
try {
...
} catch() {
...
}
}
捕获好,另外,是每一种异常单独捕获
public void xxx() {
try {
...
...
...
} catch(aaException e) {
...
} catch(bbException e) {
...
} catch(Exception e) {
...
}
}
好,还是全部都用Exception捕获
public void xxx() {
try {
...
...
...
} catch(Exception e) {
...
}
}
好?
Cara yang lebih elegan ialah mengendalikannya melalui Aop, supaya anda tidak perlu menulis percubaan berulang dan menangkap dalam kod perniagaan
Gunakan Pengecualian
Hanya untuk menyimpan log, yang terakhir akan menjelaskan masalahnya.
Tidak perlu membahagikan log, mencetak maklumat tindanan jelas sekali pandang
Ini bergantung pada senario: Dalam kes ketiga, pengecualian berbeza ditangkap secara berasingan untuk mengendalikan pengecualian yang ditangkap dengan cara yang terperinci, seperti menangkap pengecualian cache, melakukan penukaran DB, menangkap pengecualian IO dan melakukan pemulihan , dsb.; Kaedah keempat ialah membungkus Pengecualian dan memprosesnya sekali, tetapi beberapa maklumat khusus akan hilang
Pemahaman saya ialah membahagikan kepada begitu banyak jenis pengecualian boleh dianggap sebagai lanjutan kes suis
Ini bergantung pada situasi Jika anda tidak perlu mengendalikan pengecualian itu, cuma tambahkan pengecualian secara langsung pada tahap rendah Jika anda perlu mengendalikannya, hanya tangkap penambahan dan kendalikannya. Sebagai contoh, anda boleh menentukan maklumat segera anda sendiri untuk pengecualian.
Hanya tangkap pengecualian yang perlu anda perhatikan Pengecualian lain mungkin ditangkap menggunakan Pengecualian.