Mam kod wykonywany w podprocesie, który ma wywołać wyjątek.Wyjątek Reraise z podprocesu
Chciałbym podnieść ten sam wyjątek w głównym procesie, gdy wyjątek jest zwracany z podprocesu (najlepiej przy zachowaniu śledzenia stosu), ale nie jestem pewien, jak to zrobić.
Przechwytywam stderr z podprocesu, ale nie mogę go znaleźć, więc otrzymuję wyjątek. Jak to osiągnąć?
ja Pythonie 2,7
główne metody
import subprocess
example=subprocess.Popen(["python","example.py"],
stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
return_obj, return_error = example.communicate()
if return_error:
# replace with error from subprocess
print "Should raise ",NameError('HiThere')
raise TypeError('Wrong type')
subprocess
raise NameError('HiThere')
Nie sądzę, że informacje są dla ciebie dostępne, bez przerabiania wyjątku i wyrzucania nowego. – wim
Powinieneś rozważyć "importowanie" zamiast uruchamiania innego tłumacza. Zauważ, że nadal możesz uruchamiać dowolne funkcje wewnątrz 'przykładu.py' w oddzielnym procesie. – goncalopp
'if return_error: raise Exception, return_error' –