Szerző Téma: [Leírás] Kicsit a hibákról,figyelmeztetésekrõl (Errorokról,Warningokról)  (Megtekintve 2154 alkalommal)

Nem elérhető Sramm

  • 596
    • Profil megtekintése
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 token
Egy 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 indentation
A 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
« Utoljára szerkesztve: 2012. Június 29. - 18:12:01 írta Sramm »

[Leírás] Kicsit a hibákról,figyelmeztetésekrõl (Errorokról,Warningokról)
« Válasz #1 Dátum: 2012. Június 29. - 20:23:40 »
0
Nem rossz, hozzátenném a sortolódásnál belehet állítani a tabulátort.
Ha nem szeretnéd, hogy, ne írja ki a sortolódást, akkor ezt kell beraknod az includek után:
 
#pragma tabsize 0

[Leírás] Kicsit a hibákról,figyelmeztetésekrõl (Errorokról,Warningokról)
« Válasz #2 Dátum: 2012. Június 30. - 00:46:25 »
0
Nekem tetszik, nem szeretném ha elveszne ezért engedelmeddel átrakom a tanulós részbe, tervezed még bõvíteni?

Nem elérhető Sramm

  • 596
    • Profil megtekintése
[Leírás] Kicsit a hibákról,figyelmeztetésekrõl (Errorokról,Warningokról)
« Válasz #3 Dátum: 2012. Június 30. - 14:20:09 »
0
Idézetet írta: ChuckNorris date=1341009985\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23511\" data-ipsquote-contentclass=\"forums_Topic
Nekem tetszik, nem szeretném ha elveszne ezért engedelmeddel átrakom a tanulós részbe, tervezed még bõvíteni?
 
Igen, még szeretnék egy hiba listát írni :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal