[ Pobierz całość w formacie PDF ]

wołany skrypt z bł�dem, wyświetlany jest komunikat o bł�dzie. Do powszechnie spotyka-
nych przyczyn wyst�powania bł�dów czasu wykonania należą odwołania do niezdefinio-
wanych zmiennych, niewłaściwe zastosowanie obiektów, wstawianie niezgodnych typów
i tworzenie p�tli nieskończonych. Poniższy kod generuje typowy błąd czasu wykonania:

550 Część III Strategie programowania
Komunikaty o bł�dach generowane przez IE 5 i Netscape 6 są nast�pujące:
Obie przeglądarki informują użytkownika, że zmienna nie jest zdefiniowana.
Ponieważ przeglądarka nie  wie , co ma wyświetlić w polu , zwracany jest błąd.
Oto bardziej złożony przykład kodu generującego błąd wykonania:
Ten skrypt generuje nast�pujące bł�dy:

Rozdział 13. Obsługa błędów, uruchamianie, rozwiązywanie problemów 551
Powodem, dla którego skrypt generuje błąd, jest jego wykonanie zanim zostanie utworzone
pole tekstowe. Skrypt nie może przypisać wartości czemuś, co nie istnieje. Sam skrypt jest
całkowicie poprawny i nie wygenerowałby żadnych bł�dów, gdyby był wykonany po utwo-
rzeniu pola tekstowego lub gdyby został umieszczony w funkcji wywołanej po załadowa-
niu tekstu HTML.
Błędy logiczne
Błędy logiczne są wolne od bł�dów składni i czasu wykonania, lecz prowadzą do niepopraw-
nych wyników. Bł�dy logiczne nie powodują zatrzymania wykonywania skryptu, chyba że
niezamierzone wyniki bł�du logicznego w połączeniu z innym poleceniem lub skryptem
powodują błąd czasu wykonania. Usuwanie bł�dów logicznych jest cz�sto najtrudniejsze
i może od programisty wymagać prześledzenia wartości wszystkich zmiennych w każdym
kroku skryptu. Do cz�stych przyczyn bł�dów logicznych należą: użycie zamiast i nie-
zgodne typy danych. Poniższy kod ilustruje, jak łatwo jest wygenerować błąd logiczny:
W powyższym przykładzie wynik zawsze b�dzie taki:

552 Część III Strategie programowania
Pierwsze wartościowanie zmiennej (instrukcja ) zawsze zwróci , ponieważ za każdym
razem ustawia wartość zmiennej równą za pomocą operatora zamiast użyć operatora po-
równania . Ponieważ instrukcja daje (gdyż mogłaby zwrócić tylko wtedy,
gdyby wartości nie można było z jakiegoś powodu zmienić), za każdym razem
otrzymamy alert jak na rysunku powyżej. Gdybyśmy zamienili na lub , wyniki byłyby
zgodne z oczekiwaniami, zaś wartość w oknie alert reprezentowałaby spodziewaną wartość
zmiennej, czyli zaczynała si� od wartości i zwi�kszała za każdym klikni�ciem OK o 1, aż do .
Najczęstsze błędy w JavaScripcie
Czytelnik, który sp�dził jakiś czas pracując JavaScriptem zapewne napotkał wiele z poniż-
szych problemów. Zawsze jednak warto przyjrzeć si� im po raz drugi, aby pami�tać o nich
podczas kodowania.
Niezdefiniowane zmienne, pisownia i kolejność skryptu
Zmienna w JavaScripcie może być zdefiniowana na dwa sposoby: niejawnie i jawnie. De-
finicja niejawna pozwala zdefiniować zmienną po prostu przez przypisanie wartości:
Definicja jawna wykorzystuje słowo kluczowe :
lub:
Wszystkie trzy metody dają taki sam efekt (z małą różnicą dotyczącą zasi�gu zmiennej: zmien-
ne deklarowane niejawnie wewnątrz funkcji stają si� zmiennymi globalnymi): zmienna o na-
zwie zostaje zdefiniowana i otrzymuje wartość .
Jak widzimy, zdefiniować zmienną jest łatwo  wystarczy przypisać do niej wartość. Błąd
otrzymamy tylko wtedy, gdy zmienna nie b�dzie w ogóle zdefiniowana.
Bł�dy niezdefiniowanych zmiennych są cz�sto powodowane przez literówki i bł�dnie sto-
sowane duże litery w nazwach zmiennych.

Rozdział 13. Obsługa błędów, uruchamianie, rozwiązywanie problemów 553
W powyższym skrypcie są dwa poważne bł�dy. Po pierwsze, zmienna została nie-
poprawnie zapisana od dużej litery  . Po drugie, zmienna została bł�d-
nie zapisana jako . Obie pomyłki powodują podobne bł�dy czasu wykonania: błąd
braku definicji zmiennej.
Powyższe okno bł�du jest wyświetlane, jeżeli Microsoft Script Debuger został zainstalowany
i włączony. Wi�cej informacji o tym programie przedstawimy w podrozdziale  Microsoft
Script Debuger pod koniec rozdziału.
Chociaż definiowanie zmiennych w JavaScripcie jest bardzo łatwe, niezdefiniowane zmienne [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • thierry.pev.pl
  •