[Java]Unkown source

Pagina: 1
Acties:

  • Linc
  • Registratie: December 2000
  • Laatst online: 19-02 12:07
Ik heb een programma gemaakt, dit compile ik werkt allemaal perfect, ik maak er een jar van gaat ook nog goed, ik run het programma gaat ook nog goed, maar als ik nu een exception krijg dan zie ik niet bij welke regelnummer het fout gaat. Er staan dan i.p.v. de regelnummer unkown source. Hoe zorg ik er nou voor dat hij wel weet waar de source staat?

http://www.slobmotorsport.nl - iRacing Profiel


Verwijderd

Tja, een beetje standaard protocol is dat je altijd zorgt dat je ziet waar de exceptie gegooid is, door een melding mee te geven aan de Exceptie Dit kan een tekst zijn maar ook een numerieke code bv:

new EigenException("1230058, in methode x ging suz en zo fout." );

Als de exceptie van een externe class afkomstig is zorg ik ervoor dat ik die afvang (catch) en mijn eigen exceptie ervan maak (inclusief begrijpelijke melding).

try{


//hier gaat iets fout wat ik niet netjes verwerk.

}Catch (ExterneException e)
new EigenException("1230058, in methode x ging suz en zo fout. \n exceptietype" + e.getClass().getName() + "\n melding " + e.getMessage());
}


(kunnen een paar foutjes in zitten hoor)

succes.

  • Linc
  • Registratie: December 2000
  • Laatst online: 19-02 12:07
Verwijderd schreef op 11 November 2002 @ 15:56:
...

try{


//hier gaat iets fout wat ik niet netjes verwerk.

}Catch (ExterneException e)
new EigenException("1230058, in methode x ging suz en zo fout. \n exceptietype" + e.getClass().getName() + "\n melding " + e.getMessage());
}

...
Dat doe ik eigenlijk al, maar soms heb ik redelijk veel code in de try staan en dan weet ik nog steeds niet bij welke regel het fout gaat. Ik wil gewoon kunnen opgeven waar de source staat zodat hij kan terug geven welke regelnummer het fout gaat. iig bedankt.

http://www.slobmotorsport.nl - iRacing Profiel


  • bazzs2001
  • Registratie: April 2002
  • Laatst online: 13-06 11:18

bazzs2001

je moet knagen wat lekker is

hoe maak je 't jar file, misschien geeft hij wel source als je hem jar't met optie -0 zodat hij hem niet compressed (store only; use no ZIP compression).

groeten


  • Linc
  • Registratie: December 2000
  • Laatst online: 19-02 12:07
bazzs2001 schreef op 11 november 2002 @ 16:11:
hoe maak je 't jar file, misschien geeft hij wel source als je hem jar't met optie -0 zodat hij hem niet compressed (store only; use no ZIP compression).
nee helaas werkt niet.

http://www.slobmotorsport.nl - iRacing Profiel


  • bazzs2001
  • Registratie: April 2002
  • Laatst online: 13-06 11:18

bazzs2001

je moet knagen wat lekker is

-i misschien: "-i generate index information for the specified jar files"

kweenie wat voor index, zal wel niet werken maar is misschien het proberen waard...

groeten


Verwijderd

Ja soms zit er niet anders op dan meerdere try/catch blokken te gebruiken.
Verder laat ik nog wel eens een telletje meelopen die ik daarna in de Exceptiemessage meegeeft

int i = 0;
try{
i=1
//blabla
i=2
//blabla
i=3
}
catch (..){
throw new Ex(Integer.toString(i);}


Je kan ook een log functie in je code verweven met een aan en uit parametertje in een ini filetje.

vergeet dan niet voor het loggen de aanroep te doen in plaats van in de logfunctie.

xmpl:

if (LOG) log("ik ben nu hier" )

ipv:

log("ik ben nu hier" )
en dan in de log() method : if (LOG)out.println(""')

Zijn wel veel if (LOG)'s die je dan moet typen maar anders gaat je code onnodig alle Strings initialiseren die die uiteindelijk nooit logt als je je logging uit hebt staan.

Ja het is vaak omslachtig maar vergeet niet: Code bestaat meestal uit 1 deel functioneel en 20 delen logging en foutafhandeling.

  • Linc
  • Registratie: December 2000
  • Laatst online: 19-02 12:07
Verwijderd schreef op 11 november 2002 @ 16:38:
...

Ja het is vaak omslachtig maar vergeet niet: Code bestaat meestal uit 1 deel functioneel en 20 delen logging en foutafhandeling.
srry hoor, maar als java standaard functionaliteit heeft om op sherm te gooien bij welke regel het fout gaat gebruik ik liever dat. Dat scheelt namelijk veel werk, want ik deed het meestal op jou manier, maar dit kost gewoon te veel tijd.

http://www.slobmotorsport.nl - iRacing Profiel


  • Linc
  • Registratie: December 2000
  • Laatst online: 19-02 12:07
bazzs2001 schreef op 11 November 2002 @ 16:33:
-i misschien: "-i generate index information for the specified jar files"

kweenie wat voor index, zal wel niet werken maar is misschien het proberen waard...
hmm dat krijg ik om een of andere reden niet werkend...

http://www.slobmotorsport.nl - iRacing Profiel


Verwijderd

Ja voor eigen programmatjes kan dat, van mijn baas mag ik echter geen stackdumps aan de klanten laten zien dus wordt bij ons alles volgens standaarden afgevangen.

Je moet bedenken dat als het een jar is met alleen gecompileerde code er alleen bytecode in de jar zit. Dan ziet het er ook al haast niet meer als Java uit en is er wat betreft regelnummers al helemaal niets meer te herleiden.

  • Linc
  • Registratie: December 2000
  • Laatst online: 19-02 12:07
Maar dan kan ik toch opgeven waar die source (dus de .java files) staan en kan hij daar in opzoeken welke regelnummer het is ofzo? Het moet volgens mij wel kunnen.

http://www.slobmotorsport.nl - iRacing Profiel


Verwijderd

Damn, daar kan ik je helaas niets over zeggen....
Je kan wel gewoon je Java files bij de class files in de jar stoppen.
maar of de compiler een mapping hiertussen kan maken weet ik niet.
Wellicht even bij de compiler options kijken.
Als het je gelukt hoor ik het graag...

  • Bobco
  • Registratie: Januari 2001
  • Laatst online: 30-10-2023

Bobco

I used to dream about Verona.

Is dit niet gewoon een kwestie van compileren met debug informatie? Op de site van Sun staat een pagina met opties die je aan de Java compiler mee kunt geven. Check de optie -g maar eens...

With the light in our eyes, it's hard to see.


  • Linc
  • Registratie: December 2000
  • Laatst online: 19-02 12:07
Bobco schreef op 11 November 2002 @ 17:03:
Is dit niet gewoon een kwestie van compileren met debug informatie? Op de site van Sun staat een pagina met opties die je aan de Java compiler mee kunt geven. Check de optie -g maar eens...
YEAH :) dat werkt tnx, dat ik niet eerder heb gezien gewoon -g achter javac.exe zetten en het werkt.

http://www.slobmotorsport.nl - iRacing Profiel


Verwijderd

:) weer wat geleerd.
Pagina: 1