Virheilmoitukset

Käännöksenaikaiset virheet

Koska tietokone on tyhmä kuin tynnyri, se ei ymmärrä epäselviä ohjeita. Siksi ohjelmointikielten rakenne on hyvin pikkutarkka virheistä. On vain yksi ja oikea tapa kertoa koneelle käskyjä. Syntaksi. CoolBasicin kääntäjä on tavallaan tulkki CoolBasicin ja konekielen välillä. CoolBasic kääntää ohjelmointikielen koneen ymmärtämään muotoon. Ja koska virheille ei ole varaa, käännöksen on onnistuttava täydellisesti. Tästä syystä CoolBasic tarkastaa kaikki virheet koodista ennen kuin ohjelma voidaan ajaa. Valtaosa kaikista virheilmoituksista syntyvät juuri käännösvaiheessa.

Virheen syynä voi olla se, että CoolBasic ei ymmärrä jonkun rivin rakennetta täysin. Tällöin puhutaan syntaksivirheistä, eli kieliopin vastaista esityksistä. Virheenä voi myös olla se, että ohjelmoija yrittää esim. syöttää desimaalilukua funktiolle, joka vaatii kokonaisluvun. Tällaisia virheitä kutsutaan semanttisiksi virheiksi. Niissä ei ole kieliopillisesti mitään väärää, mutta ne ovat loogisesti puutteellisia.


   1 : Remark block error. End block wihout start block
Koodi Ilmoitus
#1 Remark block error. End block wihout start block
Suomennos: Vääränlainen kommentti.
Milloin tapahtuu:

Kun kommentoit sanoilla remstart ja remend, pitää "palan" olla yhtenäinen. Se alkaa remstart:lla ja loppuu remend:llä.

Ehdotuksia asian korjaamiseksi:

Etsi kohta, johon puuttuva remstart kuuluu ja lisää se. Tai poista remend.

   10 : Cannot process due to irregular string marks
Koodi Ilmoitus
#10 Cannot process due to irregular string marks
Suomennos: Törmättiin puuttuvaan lainausmerkkiin.
Milloin tapahtuu:

Kyseisellä rivillä on pariton määrä merkkijonon aloittavia ja lopettavia (kaksinkertaisia) lainausmerkkejä. Tavallisin syy on se, että ohjelmoija on unohtanut kirjoittaa merkkijonon päättävän lainausmerkin. Tosin tällaisen virheen huomaa melko helposti, kun editori värjää koko koodin alaosan merkkijonovärillä. Huomaa, että merkkijonon sisällä ei voi olla kaksinkertaisia lainausmerkkejä. Käytä yksinkertaisia ('sana') lainauksia tai Chr(34)-funktiota. Esim. tämä koodi sisällyttää merkkijonoon lainauksen:

jono$ = Chr(34) + "Hello World" + Chr(34) : Print jono$ : WaitKey

Ehdotuksia asian korjaamiseksi:

Etsi kohta, johon puuttuva lainausmerkki kuuluu ja lisää se.

   11 : Cannot process due to irregular brackets
Koodi Ilmoitus
#11 Cannot process due to irregular brackets
Suomennos: Lausekkeessa on väärät sulkeet.
Milloin tapahtuu:

Kyseisellä rivillä on pariton määrä sulkeita "( tai )". Tavallisin syy on se, että ohjelmoija on unohtanut kirjoittaa aloittavan tai lopettavan sulkumerkin. Sulkeet kuuluvat matemaattisen esityksen sääntöihin. Sulkeilla osoitetaan laskujärjestys ja esitetään taulukot ja funktiot.

Ehdotuksia asian korjaamiseksi:

Etsi kohta, johon puuttuva sulkumerkki kuuluu ja lisää se.

   32 : Duplicate identifier name
Koodi Ilmoitus
#32 Duplicate identifier name
Suomennos: Tunnistenimi esitettiin toisen kerran eri asiayhteydessä.
Milloin tapahtuu:

Kyseinen tunniste on esitelty esim. vakioksi (Const), mutta CoolBasic törmää riviin, jossa sama yritetään esittää taulukkona, funktiona tai globaalina muuttujana. Toisin sanoen: Yrität käyttää jo aikaisemmin määriteltyä tunnistetta väärin.

Ehdotuksia asian korjaamiseksi:

Käytä eri nimeä uudelle tunnisteelle.

   37 : Variable is not defined
Koodi Ilmoitus
#37 Variable is not defined. You have chosen to force variable declaration before usage. Read the manual for more info
Suomennos: Törmättiin muuttujaan, vaikka sitä ei ole ensin määritelty avainsanojen Global tai Dim avulla.
Milloin tapahtuu:

Tämä virhe tapahtuu, kun olet rastittanut kääntäjän asetuksista "Force variable declaration" -toiminnon päälle. Tämä toiminto pakottaa ohjelmoijan esittelemään kaikki muuttujat ennen käyttöä. Esittely tapahtuu joko Dim ja Global -sanoilla. Katso lisätietoa niiden komentokohtaisesta ohjeesta. Tämä toiminto on oletuksellisesti pois päältä.

Ehdotuksia asian korjaamiseksi:

Poista toiminto käytöstä tai esittele muuttujat ohjelman alussa käyttämällä Dim tai Global -sanoja. Lisätietoa näiden komentojen ohjeesta.

   38 : Invalid identifier name
Koodi Ilmoitus
#38 Invalid identifier name. You can't define "" as identifier
Suomennos: Viallinen muuttujan tai tunnisteen nimi.
Milloin tapahtuu:

Yrität käyttää sellaista nimeä muuttujalle tai tunnisteelle, joka sisältää epäkelpoja merkkejä tai nimi ei muuten ole sääntöjen mukainen.

Ehdotuksia asian korjaamiseksi:

Käytä toista nimeä. Sallitut merkit ovat kaikki normaalit kirjaimet - mukaan lukien skandinaaviset merkit. "˙" (ASCII 255) ei ole sallittu merkki. Nimi ei saa alkaa numerolla, mutta niitä voi muuten esiintyä nimessä. Tyyppitunnisteita $, % tai # pitää olla vain yksi kappale ja sen pitää olla nimessä viimeisenä. Alaviiva on sallitu, kunhan niitä ei ole useampaa peräkkäin nimen alussa. Erikoismerkit eivät ole sallittuja. Isoilla ja pienillä kirjaimilla ei ole väliä.

   39 : Invalid identifier name
Koodi Ilmoitus
#39 Invalid identifier name. Custom type not defined for identifier ""
Suomennos: Tyypitetyn (TYPE) muuttujan kenttää (FIELD) ei löydy.
Milloin tapahtuu:

Olet määritellyt muuttujan, jonka tyyppi on luotu TYPE-avainsanalla. Yrität käyttää sellaista kentän nimeä (\), jota ei ole esitelty tyypin esittelyn yhteydessä.

Ehdotuksia asian korjaamiseksi:

Tarkista, että haluttu kenttä on olemassa. Tavallisin syy virheeseen on kirjoitusvirhe.

   41 : Wrong usage of a keyword.
Koodi Ilmoitus
#41 Wrong usage of a keyword. Keyword "" needs to be expressed with a set of brackets
Suomennos: Haluttua tunnistetta on käytettävä sulkeiden kanssa.
Milloin tapahtuu:

Taulukot ja funktiot vaativat, että niiden nimen perässä on aina sulkeet, joihin mahdolliset parametrit kirjoitetaan. Vaikka esim. funktio ei tarvitse yhtään parametria, on sen perään silti kirjoitettava tyhjät sulkeet.

Ehdotuksia asian korjaamiseksi:

Kirjoita sulkeet ja mahdolliset parametrit. Esim. Print TIMER ()

   42 : Wrong usage of a keyword.
Koodi Ilmoitus
#42 Wrong usage of a keyword. Keyword "" is out of place
Suomennos: Komento on väärässä paikassa.
Milloin tapahtuu:

Komennot kirjoitetaan aina rivin alkuun. Ei keskelle eikä loppuun. Poikkeuksena sellaiset koodirakenteet, joiden eri osia erottavat varsinaisen komennon piiriin kuuluvat tytärkomennot. Esim. FOR on tällainen moniosainen komento.

  • Oikein: Print 1
  • Väärin: Print 1+WaitKey

  • Ehdotuksia asian korjaamiseksi:

    Korjaa lauseke ja siirrä väärä komento seuraavalle riville.

       46 : Wrong usage of a constant
    Koodi Ilmoitus
    #46 Wrong usage of a constant. Constant "" is out of place
    Suomennos: Luku, vakio tai merkkijono on väärässä paikassa.
    Milloin tapahtuu:

    Lausekkeessa on kieliopillinen virhe. Luku, merkkijono tai vakio on esitelty väärin.

    Ehdotuksia asian korjaamiseksi:

    Tarkista lauseke. Kahden tunnisteen, muuttujan tai vakion välissä pitää olla joku laskutoimitus.

       47 : Constant statement error
    Koodi Ilmoitus
    #47 Constant statement error. Constant must have a number or string applied to it
    Suomennos: Vakioon ei voi pistää muuttujaa.
    Milloin tapahtuu:

    Kun esittelet vakiota Const-avainsanalla, täytyy sinun antaa sille jokin arvo. Arvon täytyy pysyä vakiona. Kelvollinen arvo on luku tai merkkijono.

    Ehdotuksia asian korjaamiseksi:

  • Oikein: Const MAX_LIFES = 5
  • Väärin: Const MAX_LIFES = PlayerName$

  •    50 : Sorry, but you can't assign a custom type to global variables or arrays
    Koodi Ilmoitus
    #50 Sorry, but you can't assign a custom type to global variables or arrays. This feature might be added in the future coming versions
    Suomennos: Mukautettua tyyppiä (TYPE) ei toistaiseksi voida soveltaa globaaleihin muuttujiin.
    Milloin tapahtuu:

    Global-avainsanalla esitellään globaalit muuttujat, eli sellaiset muuttujat, jotka säilyttävät arvonsa myös funktioissa. Toistaiseksi ei ole mahdollista määritellä globaaleja tyypitettyjä muuttujia. Eli TYPE-ominaisuutta ei voi tähän soveltaa :( Pyrimme lisäämään tämän ominaisuuden myöhemmin.

    Ehdotuksia asian korjaamiseksi:
    -

       55 : This should be an assignment statement.
    Koodi Ilmoitus
    #55 Function not found. Variable cannot be used like this. This should be an assignment statement.
    Suomennos: Kielioppivirhe. Tätä oletetaan sijoituslausekkeeksi, mutta sen rakenne ei täsmää.
    Milloin tapahtuu:

    Jos aloitat rivin muuttujalla, on sen oltava sijoituslause.

    Ehdotuksia asian korjaamiseksi:
    Oikein: lifes = lifes + 1

       56 : Syntax error
    Koodi Ilmoitus
    #56 Syntax error. Read the usage of this keyword in the manual
    Suomennos: Komentoa käytetään väärin.
    Milloin tapahtuu:

    Komentoa käytetään väärin.

    Ehdotuksia asian korjaamiseksi:
    Tarkasta komennon käyttö manuaalista.

       57 : Syntax error
    Koodi Ilmoitus
    #57 Syntax error. Read the usage of this keyword in the manual
    Suomennos: Kielioppivirhe.
    Milloin tapahtuu:

    CoolBasic ei ymmärrä jonkin rivin rakennetta täysin.

    Ehdotuksia asian korjaamiseksi:
    Virheen syntymiseen on miljoona syytä. Tavallisesti virhe on kuitenkin helppo löytää, kun riviä silmäilee.

       58 : Forbidden operation
    Koodi Ilmoitus
    #58 Forbidden operation. The only allowed operations to strings are comparison, and 'plus'
    Suomennos: Merkkijonoille voi suorittaa vain plus-laskun ja vertailun.
    Milloin tapahtuu:

    Yrität suorittaa matemaattisen toimenpiteen merkkijonoille. Ainoat sallitut operaattorit ovat: +,<,>,=,<=,>=,<>,AND,OR,XOR ja NOT.

    Ehdotuksia asian korjaamiseksi:
  • Sallittu: name$ = name$ + " Collins"
  • Sallittu: If login$ = "John" Then Text 0,0,"Welcome"
  • Väärin: name$ = name$ - 5
  •    59 : Type declaration out of place / Variable "" can't be used like this
    Koodi Ilmoitus
    #59 Type declaration out of place / Variable "" can't be used like this
    Suomennos: AS-sanan väärinkäyttö tai kielioppivirhe muuttujan kanssa.
    Milloin tapahtuu:

    Yrität käyttää jotain muuttujaa samaan tapaan kuin taulukkoa tai funktiota. Eli kirjoitat alkavat sulkeet sen perään.

    Ehdotuksia asian korjaamiseksi:
    -

       60 : Syntax error. Empty brackets not allowed
    Koodi Ilmoitus
    #60 Syntax error. Empty brackets not allowed. Invalid array definition for ""
    Suomennos: Tässä kohtaa ei voi esittää tyhjiä sulkuja.
    Milloin tapahtuu:

    Yrität määritellä taulukon Dim-avainsanalla, mutta et ole pistänyt sulkeisiin yhtään ulottuvuutta. Taulukoissa on oltava 1-5 ulottuvuutta. Lisätietoja Dim-komennon ohjeesta.

    Ehdotuksia asian korjaamiseksi:
    Lisää ulottuvuus / ulottuvuudet.

       61 : Syntax error. A function requires a set of brackets.
    Koodi Ilmoitus
    #61 Syntax error. A function requires a set of brackets.
    Suomennos: Funktion perään täytyy kirjoittaa sulkeet.
    Milloin tapahtuu:

    Yrität käyttää funktiota väärin. Funktion perään täytyy kirjoittaa sulkeet, joiden sisään myös parametrit kirjoitetaan.

    Ehdotuksia asian korjaamiseksi:
    Lisää sulkeet.

       62 : Syntax error. You can't declare function variable without optional assignment after optional parameters are defined.
    Koodi Ilmoitus
    #62 Syntax error. You can't declare function variable without optional assignment after optional parameters are defined.
    Suomennos: Funktion määrittelyssä on virhe. Valinnaisten parametrien jälkeen ei voi kirjoittaa ei-valinnaisia parametreja.
    Milloin tapahtuu:

    Virhe ilmenee Function-komennossa. Olet määritellyt valinnaisia parametreja (muuttuja=arvo) funktion syntaksiin, mutta olet niiden jälkeen käyttänyt vielä normaalejakin parametreja (muuttuja).

    Ehdotuksia asian korjaamiseksi:
    Anna lopuillekin paremetreille valinnainen oletusarvo tai korjaa funktiosi syntaksi muutoin. Lisätietoja saat Function-komennon ohjeesta.

       66 : Too many dimensios for array ""
    Koodi Ilmoitus
    #66 Too many dimensios for array ""
    Suomennos: Olet määritellyt liian monta parametria taulukkoa varten.
    Milloin tapahtuu:

    Taulukoille voi antaa maksimissaan 5 ulottuvuutta (uskomme sen riittävän). Olet kuitenkin määritellyt enemmän.

    Ehdotuksia asian korjaamiseksi:
    Määritä vähemmän ulottuvuuksia.

       69 : Function block out of place.
    Koodi Ilmoitus
    #69 Function block out of place. A function can't be inside other functions.
    Suomennos: Funktio ei voi ilmetä toisen funktion sisällä.
    Milloin tapahtuu:

    CoolBasic löytää funktion määrittelyn, vaikka edellisestä ei ole tultu pois. Tavallisin syy on End Functionin unohtuminen.

    Ehdotuksia asian korjaamiseksi:
    Tarkasta funktiopalat ja lisää puuttuva End Function.

       75 : Variable "" already defined with another type
    Koodi Ilmoitus
    #75 Variable "" already defined with another type
    Suomennos: Muuttuja on jo esitetty erityyppiseksi.
    Milloin tapahtuu:

    CoolBasic törmää muuttujaan, joka on esitelty jo aiemmin, mutta erityyppiseksi. Esim. muuttuja on esitelty kokonaislukumuuttujaksi, mutta yrität nyt esittää sitä uudestaan merkkijonona ($-merkillä).

    Ehdotuksia asian korjaamiseksi:
    Yleensä kannattaa esitellä muuttujan tyyppi vain ensimmäisellä kerralla: nimi$. Tämän jälkeen sinun ei tarvitse kuin kirjoittaa aina nimi. Toisin päin ei toimi.

       78 : Not enough parameters
    Koodi Ilmoitus
    #78 Variable "" already defined with another type
    Suomennos: Ei tarpeeksi parametreja.
    Milloin tapahtuu:

    Funktiolle, taulukolle tai komennolle on esitetty liian vähän parametreja.

    Ehdotuksia asian korjaamiseksi:
    Tarkista komennon ohjeesta mitä parametreja se vaatii ja kirjoita puuttuvat parametrit.

       79 : Too many parameters
    Koodi Ilmoitus
    #79 Too many parameters
    Suomennos: Liikaa parametreja.
    Milloin tapahtuu:

    Funktiolle, taulukolle tai komennolle on esitetty liikaa parametreja.

    Ehdotuksia asian korjaamiseksi:
    Tarkista komennon ohjeesta mitä parametreja se vaatii.

       80 : Invalid STEP-value
    Koodi Ilmoitus
    #80 Invalid STEP-value. Please make it simplier. It must be a positive or negative integer number or an integer constant.
    Suomennos: Viallinen STEP-arvo. Sen täytyy olla yksi kokonaisluku tai -vakio.
    Milloin tapahtuu:

    For-lausekkeessa on virhe. Olet määrännyt STEP-arvon, joka ei ole yksi luku tai vakio. Muuttujia ja funktioita ei sallita.

    Ehdotuksia asian korjaamiseksi:
    Kirjoita kelvollinen STEP-arvo. Se ei saa olla lauseke, esim. 1+2

       82 : "" must be used inside main program
    Koodi Ilmoitus
    #82 "" must be used inside main program.
    Suomennos: Tämä rakenne on esitettävä pääohjelmassa.
    Milloin tapahtuu:

    Global, Constant, Type ja Field-kenttiä ei voida esittää funktioissa.

    Ehdotuksia asian korjaamiseksi:
    Kuulitko, EI funktioissa!

       86 : Error in structure. Can't find ending block
    Koodi Ilmoitus
    #86 Error in structure. Can't find ending block
    Suomennos: Koodirakenteesta puuttuu lopettava komento.
    Milloin tapahtuu:

    Koodirakenteen (esim. While..Wend/Repeat..Until/For..Next/If..EndIf) lopettava komento puuttuu.

    Ehdotuksia asian korjaamiseksi:
    Tarkasta manuaalista KOMENNOT/PERUS ja kyseisen rakenteen oikea käyttötapa ja kirjoita puuttuva komento.

       87 : Error with "" Command out of place
    Koodi Ilmoitus
    #87 Error with "" Command out of place
    Suomennos: Komento on väärässä paikassa.
    Milloin tapahtuu:

    Lausekkeessa (rivillä) on syntaksivirhe, koska törmättiin komentoon, joka voidaan esittää vain rivin alussa.

    Ehdotuksia asian korjaamiseksi:
    Komento pitää kirjoittaa rivin alkuun. Sitä seuraa mahdolliset parametrit ja lausekkeet.

       88 : Can't find missing "". Structure start block missing
    Koodi Ilmoitus
    #88 Can't find missing "". Structure start block missing
    Suomennos: Koodirakenteesta puuttuu aloittava komento.
    Milloin tapahtuu:

    CoolBasic törmää koodirakenteen (esim. While..Wend/Repeat..Until/For..Next/If..EndIf) lopettavaan komentoon, mutta sitä ennen ei ole esiintynyt koodilohkon aloittavaa komentoa.

    Ehdotuksia asian korjaamiseksi:
    Joskus alkukomento on unohtunut, tai se on lipsahtanut väärään paikkaan. Tarkasta manuaalista KOMENNOT/PERUS ja kyseisen rakenteen oikea käyttötapa ja kirjoita puuttuva komento.

       90 : Label not found
    Koodi Ilmoitus
    #90 Label "" not found
    Suomennos: Pyydettyä kirjanmerkkiä ei löytynyt.
    Milloin tapahtuu:

    Ongelma ilmenee Goto- Gosub- tai Return-käskyn yhteydessä, kun se viittaa kirjanmerkkiin, jota ei ole esitelty lähdekoodissa. Huomaa, että funktioissa on omat vaikutusalueensa, joten pääohjelmasta ei voi siirtyä funktion sisällä olevaan kirjanmerkkiin tai päinvastoin.

    Ehdotuksia asian korjaamiseksi:
    Tarkasta oikeinkirjoitus, ja että kirjanmerkki on olemassa ja kirjoitettu oikealle vaikutusalueelle.

       99 : Can't find missing FUNCTION -statement
    Koodi Ilmoitus
    #99 Can't find missing FUNCTION -statement
    Suomennos: Function-lauseketta ei löytynyt.
    Milloin tapahtuu:

    Function-lauseketta ei löytynyt, vaikka sen lopettavaan End Function:iin törmättiin

    Ehdotuksia asian korjaamiseksi:
    Ratkaisu on sama kuin virheessä #88.

       101 : Type mismatch
    Koodi Ilmoitus
    #101 Type mismatch. You must pass a different type of parameter to this function or command or array.
    Suomennos: Yritit antaa funktiolle tai komennolle vääräntyyppistä tietoa.
    Milloin tapahtuu:

    Kun yrität välittää esimerkiksi desimaalilukua sellaiselle funktiolle, joka välttämättä vaatii siinä kohtaa kokonaislukua.

    Ehdotuksia asian korjaamiseksi:
    Tarkasta tietotyyppi, jota yrität välittää. Tyyppejä voi myös muuttaa muodosta toiseen Int, Float ja Str-funktioilla. Lisätietoja noiden komentojen ohjeesta.

       102 : Operand type mismatch
    Koodi Ilmoitus
    #102 Operand type mismatch. You can't perform this mathematical operation to these operands.
    Suomennos: Yritit laitonta laskutapaa.
    Milloin tapahtuu:

    Esimerkiksi merkkijonoille ei sallita kuin (+)-operaatio sekä vertailut ja JA/TAI/JOKO TAI-operaatiot. Potenssiin ei voi korottaa merkkijonoa jne...

    Ehdotuksia asian korjaamiseksi:
    Tarkasta rivin koodi.

       103 : Type mismatch
    Koodi Ilmoitus
    #103 Type mismatch. Only integers are allowed as array dimensions.
    Suomennos: Taulukoiden ulottuvuuksiin voi viitata vain kokonaisluvuilla.
    Milloin tapahtuu:

    Yrität välittää ei-kokonaislukua, kun viittaat taulukkoon ja sen ulottuvuuksiin.

    Ehdotuksia asian korjaamiseksi:
    Tarkasta tietotyyppi, jota yrität välittää. Tyyppejä voi myös muuttaa muodosta toiseen Int, Float ja Str-funktioilla. Lisätietoja noiden komentojen ohjeesta.

       200 : Can't write program!
    Koodi Ilmoitus
    #200 Can't write program!
    Suomennos: Ohjelmaa ei voitu kirjoittaa.
    Milloin tapahtuu:

    Kun yrität kääntää ohjelman, mutta edellinen ohjelman ajo on vielä kesken.

    Ehdotuksia asian korjaamiseksi:
    Sulje edellinen ohjelma. Yritä sitten uudestaan.


    <<TAKAISIN