[java] geprogrammeerde compiler messages

Pagina: 1
Acties:

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 13-09 19:19
Momenteel ben ik druk bezig met mn stage opdracht.
Aangezien ik in mijn eentje werk en een strakke planning heb, kan en/of wil ik bepaalde dingen niet allemaal tegelijk implementeren. Ik zit dus nu met een probleem dat ik van een argument van een bepaalde methode iets wil controleren. Het probleem is echter dat ik die controle pas later wil aanpakken aangezien het voor de functionaliteit niet relevant is (wel voor de integeriteit).
In delphi kon ik daarvoor de volgende dingen voor gebruiken (c&p uit de help):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Syntax  {$MESSAGE  HINT|WARN|ERROR|FATAL 'text string' }
Remarks

The message directive allows source code to emit hints,
warnings, and errors just as the compiler does. This is
similar to #emit or pragma warn in C and C++.
The message type (HINT, WARN, ERROR, or FATAL) is
optional.  If no message type is indicated, the default is
HINT. The text string is required and must be enclosed in
single quotes. 
Examples: 

{$MESSAGE 'Boo!'}            emits a hint 

{$Message Hint 'Feed the cats'}     emits a hint 
{$messaGe Warn 'Looks like rain.'}  emits a warning 
{$Message Error 'Not implemented'}  emits an error, continues compiling 
{$Message Fatal 'Bang.  Yer dead.'} emits an error, terminates compiler

Nu vroeg ik me af of zoiets dergelijks ook in java mogelijk is (dat je compiler dus zelf gaat blaten). Ik heb het nu maar ff opgelost door een melding naar stderr te sturen @runtime, maar dat vind ik eigenlijk niet echt netjes..

  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
try
{
}
catch( Exception e )
{
//blaat?
}


if( iets )
throw new Exception("Blaat?");

bedoel je zoiets?

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 13-09 19:19
Nou het is dus niet de bedoeling dat ie uit de methode klapt :) anders zou ik wel een Error oid throwen.. Ik wil dus echt een bericht in het uitvoerscherm van de compiler te zien krijgen.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Geef eerst eens een goeie omschrijving van je probleem, want ik snap niet wat je wil.

  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
Op dinsdag 26 februari 2002 16:41 schreef Jelmer Barhorst het volgende:
Nou het is dus niet de bedoeling dat ie uit de methode klapt :) anders zou ik wel een Error oid throwen.. Ik wil dus echt een bericht in het uitvoerscherm van de compiler te zien krijgen.
op de compiler uitvoer kan niet, een exception wordt in java gethrowed tijdens het runnen.

Met try{} catch{} klapt ie dus niet uit een methode he! Maar ook dit is een runtime oplossing.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op dinsdag 26 februari 2002 16:41 schreef Jelmer Barhorst het volgende:
Nou het is dus niet de bedoeling dat ie uit de methode klapt :) anders zou ik wel een Error oid throwen.. Ik wil dus echt een bericht in het uitvoerscherm van de compiler te zien krijgen.
Je kan geen berichten naar de compiler doorsluizen.

Verwijderd

Met System.out.println() kom je een heel eind. Ik weet niet of dat is wat je bedoeld.

Je zou ook eens naar System.err.println() kunnen kijken. Ik weet niet zeker of het in die vorm bestaat, maar het zou een bericht naar de "error outputstream" moeten sturen.

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 13-09 19:19
jaja, try catch ken ik wel hoor, maar ook daar moet ik iets laten doen (bijv naar de stdout of stderr blaten).
Naja, dat wordt dan maar een feature request richting Sun :)

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 13-09 19:19
Op dinsdag 26 februari 2002 16:46 schreef GHOst. het volgende:
Met System.out.println() kom je een heel eind. Ik weet niet of dat is wat je bedoeld.

Je zou ook eens naar System.err.println() kunnen kijken. Ik weet niet zeker of het in die vorm bestaat, maar het zou een bericht naar de "error outputstream" moeten sturen.
Zo doe ik het dus nu, maar zo wil ik het dus niet. :)

  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
Op dinsdag 26 februari 2002 16:47 schreef Jelmer Barhorst het volgende:
jaja, try catch ken ik wel hoor, maar ook daar moet ik iets laten doen (bijv naar de stdout of stderr blaten).
Naja, dat wordt dan maar een feature request richting Sun :)
hallo ??? kan toch als je in een catch zit.. wat bedoel je nou!

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Wat je zou kunnen doen is een java object maken die kan reageren op jouw c&p gebeuren. Het moet natuurlijk wel tussen commentaar staan ander struikelt de compiler erover. Dit java object moet dan als argument een file naam hebben en hij kan de bijbehoorde output dan alsnog maken (zoals jij gewent ben in delphi). Daarna ga je een ANT tast maken die dit dus kan.

Nu kun je in 1 build actie zowel compileren als jouw checks erop los laten.. Maarom dit voor elkaar te krijgen ben je wel even bezig :)

JUnit test die kan je bv ook zo aansluiten.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op dinsdag 26 februari 2002 16:50 schreef CK het volgende:

[..]

hallo ??? kan toch als je in een catch zit.. wat bedoel je nou!
Hij wil geen runtime fouten maar onder het parsen al.

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 13-09 19:19
Op dinsdag 26 februari 2002 16:50 schreef Alarmnummer het volgende:
Wat je zou kunnen doen is een java object maken die kan reageren op jouw c&p gebeuren. Het moet natuurlijk wel tussen commentaar staan ander struikelt de compiler erover. Dit java object moet dan als argument een file naam hebben en hij kan de bijbehoorde output dan alsnog maken (zoals jij gewent ben in delphi). Daarna ga je een ANT tast maken die dit dus kan.

Nu kun je in 1 build actie zowel compileren als jouw checks erop los laten.. Maarom dit voor elkaar te krijgen ben je wel even bezig :)

JUnit test die kan je bv ook zo aansluiten.
Hmm dat klinkt erg interessant :) (weer wat leuks om in mn vrijetijd te gaan doen)

  • JungleJim
  • Registratie: December 2000
  • Laatst online: 21:57
Misschien dat iContract iets voor je is? Als ik je namelijk goed begrijp wil je pre- en postcondities specificeren voor je methodes, en dat is precies wat je met iContract kan doen. 'k heb 't zelf niet geprobeerd, maar het was waar ik op uitkwam met twee clicks na zoeken met Google op 'preconditions Java'.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik zou inderdaad maar eens naar Ant kijken. Je kunt die compiler natuurlijk helemaal vol stoppen met features, maar dat is vrij onnodig denk ik. Met Ant kan je je compileer proces prettig beschrijven en gebruik maken van een enorme vracht standaard-tasks. Voor hetgene wat jij wilt is er volgens mij geen Task, maar die kan je dus wel vrij eenvoudig zelf schrijven :) . Ik zou wel eerst even zelf goed kijken bij de tasks, want het kan best zijn dat er toch al iets is...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1