php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 11-02-2007, 17:18
php_rookie
 Junior Member
Links : Onlinestatus : php_rookie ist offline
Registriert seit: Dec 2003
Beiträge: 224
php_rookie ist zur Zeit noch ein unbeschriebenes Blatt
Standard fatal error mit selbst definiertem error_hanlder abfangen

hi,

folgendes script:
PHP-Code:
<?php
error_reporting
(E_ALL E_STRICT);

class 
Test {
    public function 
__construct() {
        
set_error_handler(array($this'error_handler'));   
        
trigger_error("yx");
    }

    public function 
error_handler($code$message$file$line) {
        echo 
"$code: $message @ $file, $line";
    }
}

$test = new Test();
$test->callNotDefinedFunction();
?>
der getriggerte error in zeile 7 wird anstandslos vom selbst definierten error_handler übernommen, der aufruf der nicht definierten funktion in zeile 16, welcher einen fatal error erzeugt, jedoch nicht.

woran liegt das und wie kann man ALLE fehler von einem selbst definierten error_handler abfangen lassen?

TIA
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 11-02-2007, 17:37
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

schon mal an try und catch gedacht? woher soll der Parser wissen, dass er deine Klasse nehmen soll?
Mit Zitat antworten
  #3 (permalink)  
Alt 11-02-2007, 21:40
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
public function __call($method$a)
 {
  
trigger_error('Method: "'.$method.'" not exists');
 } 
wobei exceptions wohl angebrachter wären
Mit Zitat antworten
  #4 (permalink)  
Alt 11-02-2007, 22:47
php_rookie
 Junior Member
Links : Onlinestatus : php_rookie ist offline
Registriert seit: Dec 2003
Beiträge: 224
php_rookie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
schon mal an try und catch gedacht?
ja. wobei try/catch unvorhergesehene ereignisse abfangen soll, nicht programmierfehler ausbessern... der hintergrundgedanke bei obiger funktion ist es, einem user nicht mit unnötigen details zu verwirren bzw. unnötige details über den webserver preiszugeben. ich möchte prinzipiell ALLE fehler unterdrücken und in ein log-file umleiten. wenn der error_handler in obiger form aktiv ist, werden z.b. fatal-errors (wie der aufruf einer nicht existierenden funktion im beispiel oben) einfach nicht mehr angezeigt, was wohl kaum im sinne des erfinders ist.

der error-handler soll schlussendlich in einem framework mit autoload-funktion eingesetzt werden.
Zitat:
woher soll der Parser wissen, dass er deine Klasse nehmen soll?
anhand der set_error_handler einstellung möchte man annehmen. nur wird der anscheinend erst beim ausführen aktiv, nicht schon beim parsen der datei...
Zitat:
wobei exceptions wohl angebrachter wären
getriggert wird nichts. das war nur ein beispiel um zu demonstrieren, dass der error_handler in der form (fast) funktioniert. tut er aber eben nur fast. deswegen nochmals meine frage: wie kann man ALLE fehler der typen E_ALL | E_STRICT mit einem eigenen error_handler abfangen und behandeln? oder bleibt nur der von dir beschriebene workaround?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:15 Uhr.