[ NrmMyth @ 15.02.2007. 23:18 ] @
Pozdrav.

Zanima me kako otkriti dali je doslo do runtime errora za vrijeme izvrsavanja instance System.Diagnostics.Process klase.

Hvala,
Ivan.
[ mmix @ 22.02.2007. 15:57 ] @
Ovo mozes samo ako proces koji si startovao pukne i obezbedi Exit Code. Taj exit code je dostupan kroz ExitCode property Process objekta, nakon sto HasExited property postane true. Alternativno, ako je aplikacija console-friendly, mozes da koristis StandardError() stream procesa da kupis informacije o greskama tokom izvrsavanja, ali retko ko to koristi
[ NrmMyth @ 22.02.2007. 17:34 ] @
A kako saznati sto program vraca nakon sto se dogodi u njemu runtime error?
Zar tu nije nekakava drugaciji mehanizam vracanja vrijednosti. Hocu reci, nakon runtime errora zar program jednostavno ne "umre" bez vracanja vrijednosti.

PS: Dobro dosao nazad!
[ mmix @ 22.02.2007. 19:16 ] @
Citat:
NrmMyth: A kako saznati sto program vraca nakon sto se dogodi u njemu runtime error?
Zar tu nije nekakava drugaciji mehanizam vracanja vrijednosti. Hocu reci, nakon runtime errora zar program jednostavno ne "umre" bez vracanja vrijednosti.



Ovo je zaostavstina iz DOS dana. Svaki process ima exit code, i DOS je kao single exection OS uvak pratio exit code zadnje aplikacije (pa je mogao da se koristi za upravljanje batch fajlova), ako aplikacija ne odredi broj, postavlja se 0 po defaultu, na samoj aplikaciji je da postavi adekvatan broj pre nego sto izadje, i to obicno radi finalni error-handler aplikacije, ne OS.
Windows je malo drugaciji kao multi-process OS. Svaki proces (kao virtuelni entitet) ima svoj handle i dok god ima zivih handlova na proces cuva se taj "objekat" procesa cak iako je memorija procesa raspustena. Posto ti drzis zivu instancu Process objekta ona u pozadini cuva handle na proces i tako dolazi do exit coda iako je sama child aplikacija mrtva. Takodje moze da se desi da sam windows postavi exit code ako je npr on nula a aplikacija je napravila GPF, itd.

Citat:
PS: Dobro dosao nazad!


Hvala, hvala, lepo je biti nazad
[ NrmMyth @ 22.02.2007. 21:02 ] @
Citat:
postavlja se 0 po defaultu
To me je zanimalo, hocu odrediti dali je doslo do runtime-errora u procesu na koji Process klasa "pokazuje".
Ali ako je 0 kao default nakon RERR, kako razlikovati to od obicnog izlaza sa 0.
[ mmix @ 22.02.2007. 21:16 ] @
Citat:
NrmMyth: Ali ako je 0 kao default nakon RERR, kako razlikovati to od obicnog izlaza sa 0.


99% ce raditi ok. C++ runtime npr ima izlazni kod koji postavlja exit code na kod greske, pa su onda svi programi bazirani na tom runtimu ponasaju tako. Probaj

[ NrmMyth @ 22.02.2007. 22:18 ] @
Budem.