Podczas wytwarzania aplikacji lecz także podczas jej biegu mogą wystąpić sytuacje, kiedy dojdzie do jakiegoś błędu aplikacji. Taki błąd trzeba wychwycić, odszukać przyczynę i skorygować.
Wyszukiwanie błędów w skryptach
INFO system:
Błędy można zazwyczaj stwierdzić w INFO systemie pod pozycją
/Errors/Script. Przy każdym błędzie znajduje się jego opis, numer wiersza i kolumny w skrypcie.
Pisanie własnych logów do INFO systemu:
Niektóre błędy w skrypcie mogą być bardziej "podchwytliwe". Na przykład błąd nie musi być syntaktyczny lecz semantyczny, tzn. skrypt działa lecz nie tak, jak powinien.
Do stwierdzenia przyczyny można zastosować metodę
Pm.Debug (lub metoda
Pm.InfoLogAdd) oraz np. tzw. "
metodę równego dzielenia". To znaczy, że gdzieś w aplikacji w odpowiednim miejscu (lub w kilku miejscach) w skrypcie umieszczasz tą metodę (z informacją diagnostyczną w pierwszym parametrze wyrażenia). Następnie w uruchomionej aplikacji dokonaj wykonania danego skryptu i w
pozycji Debug INFO systemu można stwierdzić, czy jest wyświetlona "notatka diagnostyczna". Informacja ta podpowie, czy do błędu w skrypcie dochodzi
przed lub
za notatką.
Web panele:
Metoda
Pm.Debug oraz metoda
Pm.InfoLogAdd działa również u Web klienta, wypis można przeglądać naciśnięciem klawisza
Shift+CtrlAlt+spacja w
Web panelu (lub naciśnięciem klawisza
F12 w karcie
"Konsola").
Długotrwałe śledzenie błędów w aplikacji
Informacje o błędach, które są wyświetlane do
INFO systemu są widoczne tylko w uruchomionej i zatrzymanej aplikacji (w runtime oraz w środowisku deweloperskim).
Po wyłączeniu aplikacji zanikają i nie można ich odszukać.
Zapis błędów do pliku LOG:
Globalne błędy jednak mogą być zapisywane również do pliku
Aplikacja.log.
Sposób zapisu błędów można ustawić w pliku
Aplikacja.ini w sekcji
[Log].
Plik LOG można wtedy przeglądać nawet po kilkakrotnym wyłączeniu i włączeniu aplikacji.
Wstępnie ustawione jest logowanie tylko pierwszego błędu danego typu.
Indywidualne logowanie błędów:
Można zastosować również zdarzenie
onAppError obiektu
PmaRoot na przykład:
- do tworzenia własnego pliku do logowania błędów
- do zapisania zdarzenia błędu do alarmów lub eventów
Restart aplikacji
Mogą pojawić się sytuacje, do których przy krótkotrwałym testowaniu aplikacji nie dojdzie. Na przykład:
- po restarcie SO Windows aplikacja jest uruchomiona wcześniej niż usługi Windows konieczne do jej poprawnego działania
- nie zostanie wznowione połączenie z urządzeniem komunikacyjnym po wypadnięciu sieci, itd.
Powstrzymać uruchomienie aplikacji można na przykład:
- przy pomocy programu użytkowego
RunLater lub
Do zrestartowania aplikacji lub SO
Windows po "zawieszeniu" służy komponent zapezpieczeniowy
PmRtManager jako WatchDog.