2015-01-09 8 views
7

Yay çerçevesinde istisna işleme ile ilgili iki sorum var.DataAccessException vs SQLException

1) Neden Spring framework'ün DataAccessException bir çalışma zamanı istisnası, Çekirdek Java'nın SQLException kontrol edilmiş bir istisnasıdır?

2) Java'nın istisna tutma mekanizmasına göre Spring'in istisna işleme avantajı nedir?

cevap

7

SQLException üzerinden DataAccessException kullanımının nedeni, daha genel olarak sorunu açıklar. İki farklı uygulamaya sahip bir Depo veya DAO arabiriminiz varsa, biri Oracle için, biri de Cassandra içinse, bu iki özel durum için her iki uygulama için de açık artırmalar olabilir.

Bu neden Çalışma Zamanıdır ve kontrol edilen bir istisna değildir, arayanların bunu açıkça işlemesine gerek kalmaz. Benim deneyimim öyle görünüyor ki, bir SQLException veya DataAccessException atılırsa, yapabileceğim birisine kabarcık atmaktan başka yapabileceğim veya yapmak istemediğim fazla bir şey yok. Her kattaki atıkları ilan etmek, arayan kişiye daha fazla yük getirmektedir. Eğer bunlardan biri yakalanıp idare ederse, yapabilirler.

İşte JavaDocs (teşekkür @Tom!) Satır içi bağlantılar @Tom için

  1. DataAccesssException
  2. SQLException
+0

teşekkürler. İyi arama. – Todd

İlgili konular