Schrift
[thread]6180[/thread]

fehler in textdatei schreiben



<< >> 5 Einträge, 1 Seite
Andreas
 2004-04-02 18:20
#81435 #81435
User since
2003-09-24
111 Artikel
BenutzerIn
[default_avatar]
Hallo an alle

Ich habe ein Script das mir Daten aus einem Textfile in eine Datenbank schiebt.
In diesem Script sind noch verschiedene Datenbankabfragen um Zusatzinfos mit in die Tabelle zu übergeben.

Jetzt geht es mir um die Fehlerbehandlung:

Ich hätte gerne dass ich jeden Fehler der während der Laufzeit des Scripts passiert in eine Datei schreibe und das Script trotzdem weiterläuft.
Wie z.B. - Keine Verbindung zur Datenbank
- Datensatz nicht vorhanden
- Datei nicht vorhanden
- Fehler bei der Datenbankabfrage
..........

Jetzt gibt es ja in Perl die übliche Art einen Fehler abzufangen mit z.B:

open, "<Datei.txt" || die "Error: Datei lässt sich nicht öffnen"

das gleiche gibts ja bei Datenbankabfragenb auch.

Wie kann ich die Fehler abfangen und in eine Log Datei schreiben?
Das Script soll aber trotzdem weiterlaufen

Danke

Andreas
[E|B]
 2004-04-02 18:24
#81436 #81436
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
"die" bricht generell einen laufenden Prozess ab.
Versuch es mal so:

Code: (dl )
1
2
3
4
5
6
7
8
9
open(F, "file") or &wite2logfile;
# tu dies und das
close(F);

sub write2logfile {
open(F, ">> file.log");
print F $!;
close(F);
}
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Andreas
 2004-04-02 18:42
#81437 #81437
User since
2003-09-24
111 Artikel
BenutzerIn
[default_avatar]
Danke dir so funktioniert es.
Crian
 2004-04-04 02:08
#81438 #81438
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
ja, aber dann wird der Teil "#tu dies und das" immer ausgeführt, auch bei Misserfolg.

deshalb lieber

Code: (dl )
1
2
3
4
5
6
7
unless (open ...) {
write2logfile("blabla");
}
else {
# tu dies und das
close ...
}
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
esskar
 2004-04-04 03:16
#81439 #81439
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
oder

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
sub write2logfile {
  open(F, ">> file.log");
  print F $!;
  close(F);
  0;
}

if(open(...) or write2logfile(...))
{
  # tu dies und das
}
\n\n

<!--EDIT|esskar|1081034463-->
<< >> 5 Einträge, 1 Seite



View all threads created 2004-04-02 18:20.