Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Obsługa błędów
Bora
post 4.01.2004, 16:24:35
Post #1





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 15.06.2003

Ostrzeżenie: (0%)
-----


Mam własną klase DB próbuje do niej dorobić obsługe błędów.
chciałem żeby wraz zwykonainiem błędu był zwracany bład, numer lini z błędem i plik.
oczywiście moge to osiągnąć przez przesyłanie __LINE__ i __FILE__ wraz z wywołaniem każdej operacji, ale czyjest możliwe żeby w jakiś sposób pobierać te dane dopiero w przypadku powstania bedu już w klasie?questionmark.gif
[php:1:7cca7ab095]<?php
class DB{
.....
function del($tabela,$warunek=""){
$sql="DELETE FROM ".$tabela." WHERE ".$warunek;
if (mysql_query($sql)){
return true;
}else{
$this->_error();
return false;
}
}

function _error(){
$this->error[]=mysql_errno();
}
}



$db = new DB('localhost','***','***','***');
$db->del('test',"a='g'");
?>[/php:1:7cca7ab095]
Go to the top of the page
+Quote Post
Bora
post 4.01.2004, 16:52:09
Post #2





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 15.06.2003

Ostrzeżenie: (0%)
-----


Podejrzałem kod AdbDb V4.00 i tam jedyne co jest w ErrorMsg(); to zawartość mysql_error().
Ale może jest jakis sposób
Go to the top of the page
+Quote Post
tamin
post 4.01.2004, 17:17:21
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 6.09.2003

Ostrzeżenie: (0%)
-----


Mam ten sam problem. Jak dam __LINE__ w klasie to mi pokazuje w ktorym miejscu w klasie blad wystapil. Jednym chyba rozwiazaniem jest sprawdzac czy sa bledy w danym skrypcie a nie w klasie. No chyba ze nie tak bardzo zalezy ci na __LINE__ i __FILE__.
Go to the top of the page
+Quote Post
Bora
post 4.01.2004, 17:28:48
Post #4





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 15.06.2003

Ostrzeżenie: (0%)
-----


zawsze można dać :

[php:1:ab86faa40f]<?php
$db->del('test',"a='g'",__LINE__,__FILE__);
?>[/php:1:ab86faa40f]

ale może da sie to zrobć żeby nie trzeba było tego przekazywać tylko potem w klasie jakoś tą wartość pobrać
Go to the top of the page
+Quote Post
Hammer
post 4.01.2004, 19:11:13
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 3.01.2004

Ostrzeżenie: (0%)
-----


Mugłbyś sprubować napisać obsługe zastępującą orginaną z php, a wtedy zgłaszać błędy przez trigger_error, ale to by nie obsługiwąło błędów tylko w klasie, ale w całym skrypcie...
Go to the top of the page
+Quote Post
Bora
post 4.01.2004, 19:36:32
Post #6





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 15.06.2003

Ostrzeżenie: (0%)
-----


trigger_error:
Kod
It only works with the E_USER family of constants

wiec niestety odpada.
Go to the top of the page
+Quote Post
spenalzo
post 4.01.2004, 19:54:33
Post #7





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Może tutaj coś dla siebie znajdziesz.


--------------------

Go to the top of the page
+Quote Post
Bora
post 4.01.2004, 21:01:53
Post #8





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 15.06.2003

Ostrzeżenie: (0%)
-----


niestety własny set_error_handler() zwraca libie z błędem w klasie a nie w pliku.
A czy jest jakiś sposób podejrzenia w której lini została wywołana dana metoda ostatnio questionmark.gif?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 4.07.2025 - 23:59