Avatar billede mariammsh Nybegynder
10. december 2010 - 18:57 Der er 12 kommentarer

error med e.printStackTrace();

hejsa.. jeg har lige nogle spørgsmål omkring java...
vi er igang med at lave et program ved at bruge nogle Lejos klasser...
vores program skal kunne registerer data fra en robbot der har sensore (lejos klasser)... data skal gemmes i en database... vi har lavet en database, som vi prøver at connecte til java, men vi kan ikke kører programmet... i kan lige se hvor det går galt:
...
.....

    try{
              Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
              con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
              if(con!=null) System.out.println("Connection Successful!");
          }catch(Exception e){
              e.printStackTrace(); // siger FEJL
              System.out.println("Error Trace in getConnection() : " + e.getMessage());
        }
          return con;
      }

ved "e.printStackTrace()" siger den fejl: "the method e.printStackTrace()is undifined for the type Exception"

og jeg forstår ik hva problemet er?? den dukker op også når jeg oprette et window applikation til GUI?? så er den der altid.



noget andet jeg vil gerne spørg om, og det er hvordan binder man knapper i vinduerne- i den GUI vi har designet via Swing - til det vindue de burde henvisse til?? altså kode mæssigt?? vi arbejder med eclipse og Swing


mvh
forvirret mennesker!!
Avatar billede erikjacobsen Ekspert
10. december 2010 - 20:01 #1
Det bør den ikke sige. Kan du give en hel stump kode, der giver den fejlbesked?
Avatar billede mariammsh Nybegynder
10. december 2010 - 20:20 #2
men det gøre den egentlig også ved oprettelsen af en GUI applikation...

du kan se her, nu kopier jeg hele koden ind:



package Databasen;
import java.*;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class Connect{
    private java.sql.Connection  con = null;
    // private final String url = "jdbc:microsoft:sqlserver://";
    private final String url = "jtds:sqlserver://";
    private final String serverName= "localhost";
    private final String portNumber = "1433";
    private final String databaseName= "itGrows";
    private final String userName = "sql";
    private final String password = "mariam";
    // Informs the driver to use server a side-cursor,
    // which permits more than one active statement
    // on a connection.
 
   
    private final String selectMethod = "cursor";
   
    // Constructor
    public Connect(){}
   
    private String getConnectionUrl(){
          return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
    }
   
   
   
    private java.sql.Connection getConnection(){
          try{
              Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
              con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
              if(con!=null) System.out.println("Connection Successful!");
          }catch(Exception e){
              e.printStackTrace(); // FEJL HER
              System.out.println("Error Trace in getConnection() : " + e.getMessage());
        }
          return con;
      }

    /*
          Display the driver properties, database details
    */

    public void displayDbProperties(){
          java.sql.DatabaseMetaData dm = null;
          java.sql.ResultSet rs = null;
          try{
              con= this.getConnection();
              if(con!=null){
                    dm = con.getMetaData();
                    System.out.println("Driver Information");
                    System.out.println("\tDriver Name: "+ dm.getDriverName());
                    System.out.println("\tDriver Version: "+ dm.getDriverVersion ());
                    System.out.println("\nDatabase Information ");
                    System.out.println("\tDatabase Name: "+ dm.getDatabaseProductName());
                    System.out.println("\tDatabase Version: "+ dm.getDatabaseProductVersion());
                    System.out.println("Avalilable Catalogs ");
                    rs = dm.getCatalogs();
                    while(rs.next()){
                        System.out.println("\tcatalog: "+ rs.getString(1));
                    }
                    rs.close();
                    rs = null;
                    closeConnection();
              }else System.out.println("Error: No active Connection");
          }catch(Exception e){
           
                e.printStackTrace(); //FEJL HER
             
          }
          dm=null;
    }   
   
    private void closeConnection(){
          try{
              if(con!=null)
                    con.close();
              con=null;
          }catch(Exception e){
              e.printStackTrace();  //FEJL HER }
    }
    public static void main(String[] args) throws Exception
      {
          Connect myDbTest = new Connect();
          myDbTest.displayDbProperties();
      }
}
Avatar billede erikjacobsen Ekspert
10. december 2010 - 20:35 #3
Og den kode giver ikke fejl hos mig. Lige bortset fra et linieskift i linien her før }

      e.printStackTrace();  //FEJL HER }

Jeg kan ikke forklare det, hvis du får den fejl-besked. Du kunne selv have en klasse Exception, men den skulle jo så være Throwable for ikke at give fejl i catch-en, og Throwable har en printStackTrace.

Mærkeligt ;)
Avatar billede arne_v Ekspert
11. december 2010 - 01:45 #4
Hvilken Java version?
Avatar billede mariammsh Nybegynder
11. december 2010 - 22:50 #5
uha, altså jeg bruger Eclipse - helios og det er java version 6.0.220
Avatar billede arne_v Ekspert
11. december 2010 - 23:03 #6
En helt almindelig Java SE til Windows/Linux eller en speciel til Lejos?
Avatar billede mariammsh Nybegynder
11. december 2010 - 23:23 #7
nej det er vist en helt almindelig, altså Java SE til Windows
Avatar billede arne_v Ekspert
11. december 2010 - 23:39 #8
Får I også fejl med:

          }catch(java.lang.Exception e){
         
                e.printStackTrace();
           
          }

?
Avatar billede mariammsh Nybegynder
11. december 2010 - 23:50 #9
ja det gøre vi...det giver det samme fejl
Avatar billede arne_v Ekspert
11. december 2010 - 23:58 #10
En eller anden har glemt at sætte risengrød op på loftet til nisserne.

:-)

Det virker helt uforklarligt!
Avatar billede erikjacobsen Ekspert
12. december 2010 - 00:24 #11
Lige bortset fra det med nisserne, så er jeg enig. Og det mystiske er at java.lang.Exception som det ses her: http://download.oracle.com/javase/6/docs/api/java/lang/Exception.html  har en nedarvet printStackTrace() så det kan ikke give fejl.

Eneste, spinkle, mulighed er at Eclipses indbyggede Java-compiler og syntakschecker er lidt vintertræt. Har du mulighed for at tage en ny eclipse (evt fra den zip-fil du allerede har), og prøve der?
Avatar billede arne_v Ekspert
03. marts 2011 - 04:00 #12
maria??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester