Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Stream d'erreur [bis]

4 réponses
Avatar
Alain ROUILLON
Salut,

Au risque d'être insistant, je ne vois pas comment récupérer le stream
d'erreur qui est affiché dans la fenêtre DOS.

J'ai une classe Test qui consiste à appeler des méthodes d'objets. Je ne
dispose pas du source de ces autres objets.

En exécutant ma classe Test, il se trouve que j'obtiens une erreur sur l'un
de ces objets, avec une pile d'appel (jusque là rien ne me choque). La pile
étant trop grande, on ne lit pas la totalité du stream. Je voudrais donc le
récupérer à partir de ma classe Test et le mettre dans un fichier log par
exemple.

Comment faire ?

Alain

4 réponses

Avatar
Cédric Chabanois
Ton message précédent n'était pas clair : je pensais que tu lançais un
processus à partir de Java ...

Pour avoir la totalité de l'erreur, il suffit de régler la console msdos.

Sinon, l'exception, c'est toi qui l'affiche au niveau d'un catch ou
c'est une classe interne dont tu n'as pas les sources (on évite de gérer
une exception dans une classe interne si c'est juste pour la sortir sur
out en principe ...) ?

Cédric

Salut,

Au risque d'être insistant, je ne vois pas comment récupérer le stream
d'erreur qui est affiché dans la fenêtre DOS.

J'ai une classe Test qui consiste à appeler des méthodes d'objets. Je ne
dispose pas du source de ces autres objets.

En exécutant ma classe Test, il se trouve que j'obtiens une erreur sur l'un
de ces objets, avec une pile d'appel (jusque là rien ne me choque). La pile
étant trop grande, on ne lit pas la totalité du stream. Je voudrais donc le
récupérer à partir de ma classe Test et le mettre dans un fichier log par
exemple.

Comment faire ?

Alain




Avatar
Alain ROUILLON
Problème résolu, j'ai effectivement redirigé le stream d'erreur vers un
fichier log à partir de ma classe de test en utilisant System.setErr().

Mercii à tous,

Alain

"Cédric Chabanois" a écrit dans le message news:
410eab71$0$29414$
Ton message précédent n'était pas clair : je pensais que tu lançais un
processus à partir de Java ...

Pour avoir la totalité de l'erreur, il suffit de régler la console msdos.

Sinon, l'exception, c'est toi qui l'affiche au niveau d'un catch ou
c'est une classe interne dont tu n'as pas les sources (on évite de gérer
une exception dans une classe interne si c'est juste pour la sortir sur
out en principe ...) ?

Cédric

Salut,

Au risque d'être insistant, je ne vois pas comment récupérer le stream
d'erreur qui est affiché dans la fenêtre DOS.

J'ai une classe Test qui consiste à appeler des méthodes d'objets. Je ne
dispose pas du source de ces autres objets.

En exécutant ma classe Test, il se trouve que j'obtiens une erreur sur
l'un


de ces objets, avec une pile d'appel (jusque là rien ne me choque). La
pile


étant trop grande, on ne lit pas la totalité du stream. Je voudrais donc
le


récupérer à partir de ma classe Test et le mettre dans un fichier log
par


exemple.

Comment faire ?

Alain






Avatar
jerome moliere
Alain ROUILLON wrote:

Problème résolu, j'ai effectivement redirigé le stream d'erreur vers un
fichier log à partir de ma classe de test en utilisant System.setErr().
utilises Log4J cela te permettra de faire ceci mais avec une config plus

propre et plus evolutive..

jerome

--
Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003
http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean13—82212111941

Avatar
Unknown
En exécutant ma classe Test, il se trouve que j'obtiens une erreur sur l'un
de ces objets, avec une pile d'appel (jusque là rien ne me choque). La pile
étant trop grande, on ne lit pas la totalité du stream. Je voudrais donc le
récupérer à partir de ma classe Test et le mettre dans un fichier log par
exemple.


En gros tu veux redigiger stderr ?
System.setErr(new PrintStream(new FileOutputStream("meslogErr")):

sinon quand tu exécute ton truc tu fait :
java blalbal > stdOut.log 2> stderr.log