Fitur-Fitur pada Java 7 yang Harus Kalian Ketahui (III) : Exception Handling

Penanganan exception atau exception handling memang sudah ada di Java 6, termasuk bagaimana cara menangani multiple exception. Namun di Java 7, ada beberapa pengembangan pada fungsionalitas ini. Java 7 memperkenalkan fungsionalitas multi-catch untuk menangkap banyak exception, dengan menggunakan satu buah catch block saja.

Contohnya seperti ini, kamu mempunyai sebuah method yang membuang tiga buah exception, di Java 6, tentu kamu akan menuliskannya seperti ini :

public void java6MultiCatch() {

            try {

                  methodThatThrowsThreeExceptions();

            } catch (ExceptionOne e) {

                  // merekam dan menangani ExceptionOne

            } catch (ExceptionTwo e) {

                  // merekam dan menangani ExceptionTwo

            } catch (ExceptionThree e) {

                  // merekam dan menangani ExceptionThree

            }

      }

Well, menangani banyak sekali exception dengan cara menangkapnya satu persatu tentu saja membuat kodingan kalian terlihat berantakan. Bayangkan jika exception-nya mencapai puluhan. Tentu saja metode ini sangat tidak efisien dan riskan. Belum lagi ditambah fakta bahwa Exception juga harus diurutkan sesuai dengan ruang lingkupnya. Misal Exception (ruang lingkup lebih luas) harus diletakkan di bawah IOException yang mempunyai ruang lingkup lebih kecil.

Untungnya, Java 7 mempunyai mekanisme untuk mengatasi masalah ini, lihatlah bagaimana method di atas ditulis ulang seperti di bawah ini:

public void java7MultiCatch() {

            try {

                  methodThatThrowsThreeExceptions();

            } catch (ExceptionOne | ExceptionTwo | ExceptionThree e) {

                  // merekam dan menangani semua Exception

            }

      }

Bagaimana? Kelihatan lebih rapi bukan. 🙂 Semua exception bisa ditangkap di satu catch block menggunakan operator “|”, dan ditampung ke dalam single variable e. Dengan begini kalian tidak harus menuliskan puluhan catch block untuk menangkapi exception satu persatu. Walaupun begitu, apabila kalian mempunyai banyak exception yang terdiri dari beberapa tipe berbeda, kalian harus tetap menggunakan multiple catch block, contohnya seperti ini :

public void java7MultiCatch() {

            try {

                  methodThatThrowsThreeExceptions();

            } catch (ExceptionOne e) {

                  // merekam dan menangani ExceptionOne

            } catch (ExceptionTwo | ExceptionThree e) {

                  // merekam dan menangani ExceptionTwo dan ExceptionThree

            }

      }

Pada kasus di atas, ExceptionTwo dan ExceptionThree tergolong ke dalam hierarki berbeda, jadi kalian ingin menanganinya secara terpisah dari ExceptionOne, tapi tetap di dalam satu buah catch block.

Pusing Menghitung Banyak Angka? Java 7 Punya Solusinya!

Leave a Reply

Do NOT follow this link or you will be banned from the site!