[Ralat] Exception Sendiri

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[Ralat] Exception Sendiri

Badi Hrp
Mo nanya,

saya buat Exception sendiri, tetapi masih error. Ada apa yang salah?

 

class sQLConnection {

      Connection conn;

      public sQLConnection(){

            try{

                  Class.forname(xxx);

                  Conn = DriverManager.getConnection(xxxxxxx);

                 

            } catch (sQLExceptionHandler sQLE){

                 

            } catch (classNotFoundExceptionHandler classE){

            }

 

 

      }

 

}

 

====

class sQLExceptionHandler extends SQLException{

 

      public sQLExceptionHandler(){

}    

 

public sQLExceptionHandler(String msg){

super(msg)

}    

}

 

====

class classNotFoundExceptionHandler extends ClassNotFoundException{

 

      public classNotFoundExceptionHandler(){

}    

 

public classNotFoundExceptionHandler(String msg){

super(msg)

}    

}

 

 

Salam,

 

Badi

 

 

 



[Non-text portions of this message have been removed]

Reply | Threaded
Open this post in threaded view
|

Re: [Ralat] Exception Sendiri

Tonny Kohar
Hi,

On Mon, 2008-03-10 at 10:39 +0700, Badi H wrote:
> Mo nanya,
>
> saya buat Exception sendiri, tetapi masih error. Ada apa yang salah?
>

Errornya apa ? kurang informasi, jadi saya hanya menebak2 maksudnya.

Menurut saya, kode nya anda aneh, karena jikalau anda tidak membuat
driver sendiri atau tidak membuat DriverManager.getConnections() sendiri
yang bakal throw exception yang sudah anda buat sQLExceptionHandler dan
classNotFoundExceptionHandler, maka DriverManager tersebut tidak akan
pernah meng throw exception itu. DriverManager tetap akan meng throw
exceptionnya sendiri eg: SQLException (bukan sqlExceptionHandler), etc.
Jadi try..catch exception anda tidak akan pernah mengcatch exception
sqlExceptionHandler, karena memang tidak pernah di throw yang di throw
adalah SQLException.

Kelihatanya anda bingung dengan konsep inheritance dari Object Oriented,
karena dengan meng inherit itu bukan replacing. Coba di perkuat dulu
tentang konsep Object Orientednya dengan baca2 article mengenai
inheritance and juga konsep try..catch

Kalau mau di workaround mungkin bisa seperti ini

try {
   ...
} catch (SQLException ex) {
   // disini baru exception nya di catch and di convert ke exception
yang anda mau
   sQLExceptionHandler exHandler = new
sQLExceptionHandler(ex.getMessage());

  // bisa di throw lagi atau terserah mau di handle gimana
  throw exHandler;

} catch (ClassNotFoundException ex) {
   // disini baru exception nya di catch and di convert ke exception
yang anda mau
   classNotFoundExceptionHandler exHandler = new
classNotFoundExceptionHandler(ex.getMessage(),ex);

  // bisa di throw lagi atau terserah mau di handle gimana
  throw exHandler;

}

Dan juga penamaan class anda tidak mengikuti recomendasi dari Java
standard practice, nama Class di mulai dengan Huruf Besar (bukan Huruf
kecil).

Dan kalau exceptionHandler yang anda buat itu (sqlExceptionHandler,  itu
inherit dari RuntimeException bukan dari SQLException anda bisa
menginclude throwable nya di exception anda, kalau tetap pakai
SQlException bisa pakai
exHandler.setNextException() untuk menginclude original
throwable/exception



Cheers
Tonny Kohar
--
KIYUT
imagine, design, create ...
http://www.kiyut.com

Reply | Threaded
Open this post in threaded view
|

RE: [Ralat] Exception Sendiri

Badi Hrp
Hi,
Errornya spt in :

Compiling 1 source file to
D:\LESSON_SCRIPT\databinding\im-02.001.09032008\build\classes
D:\LESSON_SCRIPT\databinding\im-02.001.09032008\src\com\bh\project\reliable\
sme\im\im02\dao\sQLConnection.java:22: unreported exception
java.lang.ClassNotFoundException; must be caught or declared to be thrown
            Class.forName("org.gjt.mm.mysql.Driver");
D:\LESSON_SCRIPT\databinding\im-02.001.09032008\src\com\bh\project\reliable\
sme\im\im02\dao\sQLConnection.java:23: unreported exception
java.sql.SQLException; must be caught or declared to be thrown
            conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/harahap", "root",
"");
2 errors
BUILD FAILED (total time: 2 seconds)

Script lengkapnya seperti ini:

/**
 *
 * @author Badi
 */
public class SQLConnection {
    private static Connection conn;

    public SQLConnection() {
        try {
            Class.forName("org.gjt.mm.mysql.Driver");
            conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/harahap", "root",
"");
           
        } catch (SQLExceptionHandler sQLException) {
           
        } catch (ClassNotFoundExceptionHandler ex) {
           
        }
    }
   
    public static void setConnection(Connection conn) {
        SQLConnection.conn = conn;
    }

    public static Connection getConn() {
        return SQLConnection.conn;
    }
}


/**
 *
 * @author Badi
 */
public class ClassNotFoundExceptionHandler extends ClassNotFoundException{

    public ClassNotFoundExceptionHandler() {
    }
   
    public ClassNotFoundExceptionHandler(String msg){
        super(msg);
    }

    @Override
    protected void finalize() throws Throwable {
        super.finalize();
    }
}

/**
 *
 * @author Badi
 */
public class SQLExceptionHandler extends SQLException{
   
    public SQLExceptionHandler(){
        super();
    }
   
    public SQLExceptionHandler(String msg){
        super(msg);
    }

    @Override
    protected void finalize() throws Throwable {
        super.finalize();
    }

}


Itu saya coba dari tutorial JENI (JENI-Intro2-Bab02-Exception &
Assertion.pdf)


Salam,

Badi

From: [hidden email]
[mailto:[hidden email]] On Behalf Of Tonny Kohar
Sent: 10 Maret 2008 12:35
To: [hidden email]
Subject: Re: [netbeans-indonesia] [Ralat] Exception Sendiri

Hi,

On Mon, 2008-03-10 at 10:39 +0700, Badi H wrote:
> Mo nanya,
>
> saya buat Exception sendiri, tetapi masih error. Ada apa yang salah?
>

Errornya apa ? kurang informasi, jadi saya hanya menebak2 maksudnya.

Menurut saya, kode nya anda aneh, karena jikalau anda tidak membuat
driver sendiri atau tidak membuat DriverManager.getConnections() sendiri
yang bakal throw exception yang sudah anda buat sQLExceptionHandler dan
classNotFoundExceptionHandler, maka DriverManager tersebut tidak akan
pernah meng throw exception itu. DriverManager tetap akan meng throw
exceptionnya sendiri eg: SQLException (bukan sqlExceptionHandler), etc.
Jadi try..catch exception anda tidak akan pernah mengcatch exception
sqlExceptionHandler, karena memang tidak pernah di throw yang di throw
adalah SQLException.

Kelihatanya anda bingung dengan konsep inheritance dari Object Oriented,
karena dengan meng inherit itu bukan replacing. Coba di perkuat dulu
tentang konsep Object Orientednya dengan baca2 article mengenai
inheritance and juga konsep try..catch

Kalau mau di workaround mungkin bisa seperti ini

try {
...
} catch (SQLException ex) {
// disini baru exception nya di catch and di convert ke exception
yang anda mau
sQLExceptionHandler exHandler = new
sQLExceptionHandler(ex.getMessage());

// bisa di throw lagi atau terserah mau di handle gimana
throw exHandler;

} catch (ClassNotFoundException ex) {
// disini baru exception nya di catch and di convert ke exception
yang anda mau
classNotFoundExceptionHandler exHandler = new
classNotFoundExceptionHandler(ex.getMessage(),ex);

// bisa di throw lagi atau terserah mau di handle gimana
throw exHandler;

}

Dan juga penamaan class anda tidak mengikuti recomendasi dari Java
standard practice, nama Class di mulai dengan Huruf Besar (bukan Huruf
kecil).

Dan kalau exceptionHandler yang anda buat itu (sqlExceptionHandler, itu
inherit dari RuntimeException bukan dari SQLException anda bisa
menginclude throwable nya di exception anda, kalau tetap pakai
SQlException bisa pakai
exHandler.setNextException() untuk menginclude original
throwable/exception

Cheers
Tonny Kohar
--
KIYUT
imagine, design, create ...
http://www.kiyut.com
 


[Non-text portions of this message have been removed]

Reply | Threaded
Open this post in threaded view
|

RE: [Ralat] Exception Sendiri

Tonny Kohar
In reply to this post by Badi Hrp
Hi,

On Mon, 2008-03-10 at 13:25 +0700, Badi H wrote:

> Hi,
> Errornya spt in :
>
> Compiling 1 source file to
> D:\LESSON_SCRIPT\databinding\im-02.001.09032008\build\classes
> D:\LESSON_SCRIPT\databinding\im-02.001.09032008\src\com\bh\project
> \reliable\
> sme\im\im02\dao\sQLConnection.java:22: unreported exception
> java.lang.ClassNotFoundException; must be caught or declared to be
> thrown
> Class.forName("org.gjt.mm.mysql.Driver");
> D:\LESSON_SCRIPT\databinding\im-02.001.09032008\src\com\bh\project
> \reliable\
> sme\im\im02\dao\sQLConnection.java:23: unreported exception
> java.sql.SQLException; must be caught or declared to be thrown
> conn =
> DriverManager.getConnection("jdbc:mysql://localhost:3306/harahap",
> "root",
> "");
> 2 errors
> BUILD FAILED (total time: 2 seconds)
>
> Script lengkapnya seperti ini:
>
> /**
> *
> * @author Badi
> */
> public class SQLConnection {
> private static Connection conn;
>
> public SQLConnection() {
> try {
> Class.forName("org.gjt.mm.mysql.Driver");
> conn =
> DriverManager.getConnection("jdbc:mysql://localhost:3306/harahap",
> "root",
> "");
>
> } catch (SQLExceptionHandler sQLException) {
>
> } catch (ClassNotFoundExceptionHandler ex) {
>
> }
> }
>

Errornya karena ya itu spt jawaban saya sebelumnya.
Coba ganti line

} catch (SQLExceptionHandler sQLException) {
dengan
} catch (SQLException sQLException) {

dan
 
} catch (ClassNotFoundExceptionHandler ex) {
dengan
} catch (ClassNotFoundException ex) {

Coba di perkuat dulu dasar2 pemograman java nya. Dan juga belajar
mengeartikan compiler error message, akan sangat membantu untuk kemudian
hari :)

Cheers
Tonny Kohar
--
KIYUT
imagine, design, create ...
http://www.kiyut.com

Reply | Threaded
Open this post in threaded view
|

RE: [Ralat] Exception Sendiri

Tonny Kohar
In reply to this post by Badi Hrp
Hi,

Tambahan, juga belajar membedakan runtime error (try..catch bisa
mencegah hal ini), dengan compile time error (salah syntax, dll)

> ...
> BUILD FAILED (total time: 2 seconds)

for information: yang error anda tunjukan itu adalah compile time error

Cheers
Tonny Kohar
--
KIYUT
imagine, design, create ...
http://www.kiyut.com