ich habe ein Problem. Irgendwie schaffe ich es nicht eine Exception abzufangen die in einer lib/DLL passiert. Kurz zu meinem Programm.
Ich habe mehrere Threads in denen per Synapse Mails versendet werden. Nun passiert es ab und zu mal das OpenSSL (das brauche ich für TLS und DKIM) "abschmiert". Leider bricht dann das ganze Programm ab. Das Programm ist ein Unix CustApp. Also ein Konsolen Programm und läuft unter Debian.
Was ich schon versucht habe:
1. habe ich alles mit try/except abgesichert. Leider bringt das nichts.
2. Ich habe HandleException auf meine Routine umgebogen weil ich dachte das ich es dort mitbekomme. Leider nicht.
Was klappt ist, wenn innerhalb des Programms eine nicht behandelte exception kommt. Dann springt er in meine Routine.
Die Threads erzeuge ich mit BeginThread.
Ich suche nun schon mind. 2 Wochen nach einer Lösung. Leider finde ich nichts dazu. Leider ist der Fehler nicht reproduzierbar. Mal läuft es 4 Tage durch, mal schmiert es nach 1 Stunde ab.
Nun zu meinen Fragen:
Wie kann ich eine "externe" exception abfangen?
Ist es irgendwie möglich das man nach einer exception einfach nur den Thread killt und alles andere läuft weiter?
Vielen dank im Voraus
PS.: Das bekomme ich zurück wenn es unter gdb läuft.
Code: Alles auswählen
Thread 5 "newsletter" received signal SIGPIPE, Broken pipe.
[Switching to Thread 0x7ffff6dc8700 (LWP 2906)]
__libc_write (nbytes=35, buf=0x7fffe00f4c43, fd=5) at ../sysdeps/unix/sysv/linux/write.c:26
26 return SYSCALL_CANCEL (write, fd, buf, nbytes);