Thread eval-Fehler des MainLoops abfangen (6 answers)
Opened by GoodFella at 2007-02-25 17:01

GoodFella
 2007-02-25 17:01
#46245 #46245
User since
2007-01-09
192 Artikel
BenutzerIn
[default_avatar]
Ich möchte, sollte eine meiner Widget-Funktionen einen Fehler produzieren, diesen in einer Log-datei mit TimeStamp festhalten.

Habe folgenden Code probiert:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
eval 
 {
  MainLoop();
 };

if($@)
 {
  my $f;
  open($f, ">>$error_log") or open($f, ">$error_log");
  my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
  print $f (sprintf("%2d.%02d.%04d %02d:%02d:%02d   ", $mday, ($mon + 1), ($year + 1900), $hour, $min, $sec))."$@\n";
  close($f);
 }


Dann in Zeile 1050 folgenden Fehler absichtlich eingebaut:

Code (perl): (dl )
$top_msg->ass;


aus STDERR kam folgende Fehlermeldung:

Quote
Tk::Error: Failed to AUTOLOAD 'Tk::Toplevel::ass' at mmc.pl line 1050
Carp::croak at C:/Programme/Perl/lib/Carp.pm line 269
Tk::Widget::__ANON__ at C:/Programme/Perl/lib/Tk/Widget.pm line 347
main::add_file at mmc.pl line 1050
Tk callback for .button1
Tk::__ANON__ at C:/Programme/Perl/lib/Tk.pm line 252
Tk::Button::butUp at C:/Programme/Perl/lib/Tk/Button.pm line 111
<ButtonRelease-1>
(command bound to event)


..Nur leider wurde nichts in meine Datei geschrieben, ein print-test ergab, dass perl nichtmal in die if($@) { .. } - Schleife reingeht.

Ideen, wie ich das zum Laufen bringen könnte?

View full thread eval-Fehler des MainLoops abfangen