A másik fórumon nem nagyon értékelték, de sok munkám van benne, hátha itt megbecsülik Általános Pawno Hibalista
A leírás tartalmazza a leggyakoribb Pawno hibákat (errorokat) és figyelmeztetéseket (warningokat) egy SA-MP szkript fordításánál.
Ha a fordító hibát talál egy fájlban, akkor üzenetet küld, ebben a sorrendben:
A fájl neve
A sor, ahol a fordító hibát észlelt a zárások között, közvetlenül a fájlnév után.
A hiba típusa: \"Hiba\" (error), \"Végzetes hiba\" (fatal error), \"Figyelmeztetés\" (warning)
A hiba azonosítója/száma
Hiba leírása (Hibaüzenet)
Példa:
hello.pwn(3) : error 001: expected token: \";\", but found \"{\"
Megjegyzés: A sor száma nem mindig azonos a hibás sor számával.
Hibák (errorok) kategóriái
A hibák 3 osztályra sorolhatók:
Hibák
Olyan helyzetekben jön elõ, amikor a fordító nem tudja kezelni a megadott kódot.
Hibakódok 1 -99 -ig.
Végzetes Hibák
A végzetes hibák azok a hibák, amikor a fordító egy adott hiba miatt (pl. Inc hiánya) totálisan összeomlik, nem tud talpraállni.
Amikor az elemzés megszakad.
Hibakódok 100 -199 -ig.
Figyelmeztetések
Figyelmeztetések akkor jelennek meg, amikor a hiba nem feltétlenül életbevágó, apróbb hibáknál.
Hibakódok 200 -299 -ig.
Gyakori hibák
001:expected tokenEgy szükséges zárás hiányzik, ami lehet \";\" jel, vagy vesszõ: \",\"
Például:
error 001: expected token: \";\", but found \"return\"
main()
{
print(\"test\") // Errõl a sorról hiányzik az adott jel
return 1;
}
002:only a single statement (or expression) can follow each \"case\"Minden esetben egy switch-nek különféle \"case\" értékei vannak. A hiba akkor szokott megjelenni, ha egy sorban egy \"case\"-hez több hozzárendelés van.
Ahhoz, hogy több hozzárendelést adjunk hozzá, kapcsos zárójelet kell hozzáadnunk, nem lehetnek egymás mellett.
Például:
error 002: only a single statement (or expression) can follow each \"case\"
main()
{
switch(x)
{
case 0: print(\"hello\"); print(\"hello\");
}
return 1;
}
A fenti kódhoz egyéb hibák /figyelmeztetések is megjelennek:
error 002: only a single statement (or expression) can follow each \"case\"
warning 215: expression has no effect
error 010: invalid function or declaration
Javítva:
main()
{
switch(x)
{
case 0:
{
print(\"hello\");
print(\"hello\");
}
}
return 1;
}
Gyakori figyelmeztetések
211: possibly unintended assignmentÁltalában az \"if\" parancsnál jelenik meg, az \"=\" jelekkel szokott lenni a probléma. Nem mind egy, hogy egyet, vagy kettõt írunk.
Példa:
if(a = 2) // figyelmeztetés (Ugyanis ezt akkor használjuk, ha az adott változónak a 2-es értéket akarjuk megadni.)
if(a == 2) // nincs figyelmeztetés
if((a = 2)) // nincs figyelmeztetés; 2-es értéket kap a változó és a kifejezés mindig igaz értéket ad vissza.
217: loose indentationA fordító ezt a figyelmeztetést adja ki, ha a kódban soreltolódás van.
Példa:
Jó példa:
if(condition)
{
action();
result();
}
Rossz példa:
if(condition)
{
action();
result();
}
Forrás: SA-MP Wiki