nirosan Skrevet 9. november 2009 Del Skrevet 9. november 2009 Hei! Jeg sliter litt med å finne ut hva som jeg gjør feil her, jeg skjønner ikke helt hvordan jeg skal få fiksa den catch exception greia?, noen som kan hjelpe meg? import java.sql.*; public class FagStuderer { public static void endreFagkode(String gmlKode, String nyKode) { Connection forbindelse = null; Statement setning = null; ResultSet res = null; try { forbindelse = DriverManager.getConnection("jdbc:default:connection"); setning = forbindelse.createStatement(); String sqlSelect = "select fagnavn from fag where fagkode = '" + gmlKode + "'"; res = setning.executeQuery(sqlSelect); if (res.next()) { String fagnavn = res.getString("fagnavn"); res.close(); String sqlUpdate = "insert into fag(fagkode, fagnavn) values ('" + nyKode + "', '" + fagnavn + "')"; setning.executeUpdate(sqlUpdate); sqlUpdate = "update studerer set fagkode = '" + nyKode + "' where fagkode = '" + gmlKode + "'"; setning.executeUpdate(sqlUpdate); sqlUpdate = "delete from fag where fagkode = '" + gmlKode + "'"; setning.executeUpdate(sqlUpdate); } } finally { setning.close(); forbindelse.close(); } } } Lenke til kommentar
TeisL Skrevet 9. november 2009 Del Skrevet 9. november 2009 Etter hva jeg forstår så får du en feilmelding på denne koden, kan du poste feilmeldingen også kanskje?? Lenke til kommentar
olaw Skrevet 10. november 2009 Del Skrevet 10. november 2009 Du bør legge inn en catch-blokk før finally, så du kan fange opp eventuelle feil. try{ //koden din }catch(Excepton ex){ //fanger eventuelle exception, så du kan skrive de ut }fianlly{ //finally-koden din } Lenke til kommentar
delfin Skrevet 10. november 2009 Del Skrevet 10. november 2009 Hei! Jeg sliter litt med å finne ut hva som jeg gjør feil her, jeg skjønner ikke helt hvordan jeg skal få fiksa den catch exception greia?, noen som kan hjelpe meg? import java.sql.*; public class FagStuderer { public static void endreFagkode(String gmlKode, String nyKode) { Connection forbindelse = null; Statement setning = null; ResultSet res = null; try { forbindelse = DriverManager.getConnection("jdbc:default:connection"); setning = forbindelse.createStatement(); String sqlSelect = "select fagnavn from fag where fagkode = '" + gmlKode + "'"; res = setning.executeQuery(sqlSelect); if (res.next()) { String fagnavn = res.getString("fagnavn"); res.close(); String sqlUpdate = "insert into fag(fagkode, fagnavn) values ('" + nyKode + "', '" + fagnavn + "')"; setning.executeUpdate(sqlUpdate); sqlUpdate = "update studerer set fagkode = '" + nyKode + "' where fagkode = '" + gmlKode + "'"; setning.executeUpdate(sqlUpdate); sqlUpdate = "delete from fag where fagkode = '" + gmlKode + "'"; setning.executeUpdate(sqlUpdate); } } finally { setning.close(); forbindelse.close(); } } } Hva er det meningen at koden din skal gjøre? Det ser veldig komplisert ut i forhold til det jeg tror oppgaven din er? Lenke til kommentar
norpheus Skrevet 13. november 2009 Del Skrevet 13. november 2009 Når man jobber med noe som kan generere en Exception, bør man alltid prøve å fange opp denne, spesiellt når man jobber mot databaser eller andre eksterne systemer. Legg til en catch etter try og skriv ut en stack-trace på Exception. Da vet du ihvertfall HVA og HVOR det er noe feil. Slik lager du en try-catch try{ //CODE } catch(Exception e){ e.printStackTrace(); } I finally bør man IKKE kjøre funksjoner som kan generere en Exception uten å fange opp denne. Feks hvis setning.close() feiler, vil ikke forbindelse.close() kjøres. Da kan du fort få en del unødvenige åpne connections mot databasen. Jeg pleier å ha en egen metode i mine prosjekter som utfører selve lukkinga av Connection og Statement. Eksempel på funksjon: public static void close(Connection c){ try{c.close();}catch(Exception ignored){} //Ignorerer exceptions } Når du har lagt til catch, kan du se hva som er feil og deretter rette opp dette. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå