ScriptForge.Exception zerbitzua

Exception zerbitzua Basic eta Python scripten kodea garbitzen laguntzeko eta Basic scripten erroreak maneiatzeko metodoen bilduma bat da.

Basic scriptetan, exekuzio-garaiko errore bat gertatzen denean, Exception zerbitzuko metodo eta propietateek errorearen testuingurua identifikatzen eta hura maneiatzen laguntzen dute.

tip

Exception zerbitzuarekin sortutako erroreak eta abisuak memorian gordetzen dira eta Console metodoarekin atzitu daitezke.


Exception zerbitzu-kontsolak gertaerak, aldagaien balioek eta erroreei buruzko informazioa gordetzen du. Erabili kontsola Basic IDEa erraz erabili ezin denean, adibidez erabiltzaileak definitutako Calc funtzioetan (UDF) edo gertaerak prozesatzean.

Erabili DebugPrint metodoa kontsolari informazio nabarmenena gehitzeko. Kontsola-sarrerak testu-fitxategi batera isuri daitezke edo elkarrizketa-koadro batean erakutsi daitezke.

Errorea gertatzen bada, aplikazio-makro batek honakoak egin ditzake:

  1. Jakinarazi errorea Exception kontsolan

  2. Erabiltzaileari errorearen berri eman, horretarako mezu estandar bat edo mezu pertsonalizatu bat erabilita

  3. Aukeran, gelditu bere exekuzioa

Python scriptetan Exception zerbitzua akatsak arazteko erabiltzen da gehien bat. DebugPrint, Console eta DebugDisplay moduko metodoak oso erabilgarriak dira Python scriptetatik mezuak azkar inprimatzeko, datuak egunkarian gordetzeko eta kontsola-leihoa irekitzeko.

note

Metodo eta propietate guztiak ez daude erabilgarri Python scriptetarako, Python lengoaiak berak salbuespenak maneiatzeko sistema osatua baitu.


Zerbitzuari deitzea

Basic lengoaian

Hurrengo adibideek Raise metodoa deitzeko hiru modu desberdin erakusten dituzte. Beste metodo guztiak ere antzeko moduan exekutatu daitezke.


    SF_Exception.Raise(...)
  

    Dim exc : exc = SF_Exception
    exc.Raise(...)
  

    Dim exc : exc = CreateScriptService("Exception")
    exc.Raise(...)
  
Python lengoaian

Beheko kode-zatiak Exception zerbitzuaren instantzia bat sortzen du, mezu bat egunkarian gordetzen du eta Console leihoa bistaratzen du.


    from scriptforge import CreateScriptService
    exc = CreateScriptService("Exception")
    someVar = 100
    exc.DebugPrint("Value of someVar", someVar)
    exc.Console()
  

Propietateak

Behean zerrendatutako propietateak Basic scriptetarako soilik daude erabilgarri.

Izena

Irakurtzeko soilik

Deskribapena

Description

Ez

Errore-mezuaren testua.

Balio lehenetsia "" da edo exekuzio-garaiko Basic errore-mezua duen kate bat da.

Number

Ez

Errorearen kodea. Zenbaki bat edo testu bat izan daiteke.

Balio lehenetsia 0 da edo exekuzio-garaiko Basic errore-kodeari dagokion zenbakizko balio bat da.

Source

Ez

Errorea gertatu den kokalekua kodean. Zenbaki bat edo testua izan daiteke.

Balio lehenetsia 0 da edo exekuzio-garaiko Basic errore estandar batek kodean duen lerro-zenbakia da.


tip

Exception bat sortzen edo garbitzen bada, bere propietateak berrezarri egingo dira.


note

0 eta 2000 zenbakien arteko errore-kodeak LibreOffice Basic berarentzat erreserbatuta daude. Erabiltzaileak definitutako erroreek balio handiagoa eduki behar dute LibreOffice Basic lengoaiaren etorkizuneko garapenekin gatazkarik ez izateko.


Exception zerbitzuaren metodoen zerrenda

Clear
Console
ConsoleClear

ConsoleToFile
DebugDisplay
DebugPrint

PythonShell
Raise
RaiseWarning


Clear

Uneko errore-egoera berrezartzen du eta SF_Exception propietateak garbitzen ditu.

note

Metodo hau Basic scriptetan soilik dago erabilgarri.


Sintaxia:


    SF_Exception.Clear()
  

Adibidea:

Hurrengo adibideak zerorekin zatitzeak sortzen duen salbuespena nola harrapatu erakusten du. Errore-kodea 11 izango da.


    Sub Example_Clear()
        Dim a, b, c
        On Local Error GoTo Catch
        Try:
            a = 10 : b = 0
            c = a / b
            '...
            Exit Sub
        Catch:
            If SF_Exception.Number = 11 Then SF_Exception.Clear()
            'Zerorekin zatitzen bada, ez ikusiarena egin erroreari
    End Sub
  
tip

Basic lengoaiaren exekuzio-garaiko errore-kodeen zerrenda osoa ikusteko, begiratu Basic programa bat araztea.


Console

Kontsola-mezuak elkarrizketa-koadro modal edo ez modal batean bistaratzen ditu. Bi motuetan, DebugPrint() metodoak bidalitako edo salbuespen batetik eratorritako iraganeko mezu guztiak bistaratzen dira. Modu ez modalean, hurrengo sarrerak automatikoki gehituko dira.

Kontsola irekita badago, ez modala denean, aurreko aldera eramango da.

Kontsola modala erabiltzaileak soilik itxi dezake. Kontsola ez modala erabiltzaileak edo makro baten amaierak itxi dezake.

Sintaxia:

exc.Console(modal: bool = True)

Parametroak:

modal: Kontsola-leihoa modala den (True) ala ez modala den (False) zehazten du. Balio lehenetsia True da.

Adibidea:

Basic lengoaian

        SF_Exception.Console(Modal := False)
  
Python lengoaian

    exc.Console(modal = False)
  

ConsoleClear

Kontsola garbitzen du, aukeran azken aldiko mezuen kopuru bat utzita. Kontsola modu ez modalean aktibatu bada, freskatu egingo da.

Sintaxia:

exc.ConsoleClear(keep: int = 0)

Parametroak:

keep: Mantenduko den azken aldiko mezuen kopurua. Balio lehenetsia 0 da.

Adibidea:

Hurrengo adibideak kontsola garbitzen du eta azken 10 mezuak mantentzen ditu.

Basic lengoaian

        SF_Exception.ConsoleClear(10)
  
Python lengoaian

    exc.ConsoleClear(10)
  

ConsoleToFile

Kontsolaren edukiak testu-fitxategi batera esportatzen ditu. Fitxategia lehendik badago eta kontsola hutsik ez badago, abisurik gabe gainidatziko da. True itzultzen du ongi gauzatzen bada.

Sintaxia:

exc.ConsoleToFile(filename: str): bool

Parametroak:

filename: Kontsolaren edukia isuriko den testu-fitxategiaren izena. Izena SF_FileSystem zerbitzuaren uneko FileNaming propietatearen arabera adieraziko da. Modu lehenetsian, URL notazioa zein sistema eragilearen jatorrizko formatua onartzen dira.

Adibidea:

Basic lengoaian

        SF_Exception.ConsoleToFile("C:\Documents\myFile.txt")
  
Python lengoaian

    exc.ConsoleToFile(r"C:\Documents\myFile.txt")
  

DebugDisplay

Argumentu guztiak gizakiak irakurtzeko moduko kate bakarrean kateatzen ditu eta MsgBox koadro batean bistaratzen du, informazioko ikono batekin eta 'Ados' botoi batekin.

Azken katea ere gehituko zaio kontsolari.

Sintaxia:

exc.DebugDisplay(arg0: any, [arg1: any, ...])

Parametroak:

arg0[, arg1, ...]: Edozein motatako edozein argumentu kopurua.

Adibidea:

Basic lengoaian

    SF_Exception.DebugDisplay("Current Value", someVar)
  
Python lengoaian

    exc.DebugDisplay("Current Value", someVar)
  

DebugPrint

Emandako argumentu guztiak gizakiak irakurri ahal izateko moduko kate batean elkarlotzen ditu eta kontsolan sarrera berri gisa gehitzen du.

Sintaxia:

exc.DebugPrint(arg0: any, [arg1: any, ...])

Parametroak:

arg0[, arg1, ...]: Edozein motatako edozein argumentu kopurua.

Adibidea:

Basic lengoaian

    SF_Exception.DebugPrint(Null, Array(1, 2, 3), "line1" & Chr(10) & "Line2", DateSerial(2020, 04, 09))
    ' [NULL]   [ARRAY] (0:2) (1, 2, 3)  line1\nLine2  2020-04-09
  
Python lengoaian

    exc.DebugPrint(None, [1, 2, 3], "line1\nline2")
    # None  [1, 2, 3]  line1\nline2
  

PythonShell

APSO Python kontsola bat leiho ez modal gisa irekitzen du. Python scriptak exekutatzen jarraitzen du kontsola ireki ondoren. Script barruko print instrukzioen irteera kontsolan erakutsiko da.

APSO Python kontsolaren instantzia bakarra ireki daiteke aldi bakoitzean. Hortaz, Python kontsola bat dagoeneko irekita badago, metodo honi deitzeak ez du eraginik izango.

warning

Metodo hau erabiltzeko, APSO (Alternative Script Organizer for Python) hedapena instalatu behar da. Instalatuta ez badago, errore bat gertatuko da.


note

Metodo hau Python scriptetan soilik dago erabilgarri.


Sintaxia:

exc.PythonShell(variables: dict)

Parametroak:

variables: APSO Python kontsolari pasatuko zaizkion aldagai-izenak eta balioak dituen Python hiztegi bat. Modu lehenetsian, aldagai lokal guztiak Pythonen integratutako locals() funtzioaren bidez pasatzen dira.

Adibidea:

Beheko adibideak APSO Python kontsola irekitzen du eta aldagai global eta lokal guztiak pasatzen ditu scripta exekutatzen ari den testuingurua kontuan hartuta.


    exc.PythonShell({**globals(), **locals()})
  

APSO Python kontsola irekita badago, scriptak inprimatutako hurrengo irteerak kontsolan erakutsiko dira. Beraz, beheko adibidean inprimatutako katea Python kontsolan bistaratuko da.


    exc.PythonShell()
    print("Kaixo mundua!")
  

Raise

Exekuzio-garaiko errore bat sortzen du. Errore-mezu bat bistaratuko da eta kontsolan jakinaraziko da. Exekuzioa gelditu egingo da. Raise() metodoa script-fluxu normalaren barruan kokatu daiteke edo errorea maneiatzeko errutina espezifiko batean.

note

Metodo hau Basic scriptetan soilik dago erabilgarri.


Sintaxia:


    SF_Exception.Raise([Number As Variant], [Source As Variant], [Description As String])
  

Ondoren ikusi daitezkeen kode-zatiak baliokideak dira. 2100 kodea duen salbuespen bat sortzeko zenbait modu erakusten ditu.


    SF_Exception.Raise(2100)
  

    SF_Exception.Number = 2100
    SF_Exception.Raise()
  

    SF_Exception.Raise Number := 2100
  

Parametroak:

Number: Errore-kodea, zenbaki gisa edo kate gisa. Balio lehenetsia Err Basic funtzio integratuarena da.

Source: Errorearen kokalekua, zenbaki gisa edo kate gisa. Balio lehenetsia Erl Basic funtzio integratuarena da.

Description: Erabiltzaileari erakutsiko zaion eta kontsolan jakinaraziko den mezua. Balio lehenetsia Error$ Basic funtzio integratuarena da.

Adibidea:


    Sub Example_Raise()
        Dim a, b, c
        On Local Error GoTo Catch
        Try:
            a = 10 : b = 0
            c = a / b
            '...
            Exit Sub
        Catch:
            'Ikusi aldaeran behean...
    End Sub
  

Balio estandarrak dituen salbuespen bat sortzeko:


    Catch:
        SF_Exception.Raise()
  

Salbuespena kode espezifiko batekin sortzeko:


    Catch:
        SF_Exception.Raise(11)
  

Ohiko mezua ordezteko:


    Catch:
        SF_Exception.Raise(, , "Ez da ideia ona zerorekin zatitzea.")
  

Aplikazio-errore bat sortzeko:


    Catch:
        SF_Exception.Raise("MyAppError", "Example_Raise()", "Zerbait gaizki egin da!")
  

RaiseWarning

Metodo honek Raise() metodoaren sintaxi, argumentu eta portaera berak ditu.

Hala ere, abisu bat sortzen denean, makroaren exekuzioa ez da gelditzen.

note

Metodo hau Basic scriptetan soilik dago erabilgarri.


Sintaxia:


    SF_Exception.RaiseWarning([Number As Variant], [Source As Variant], [Description As String])
  

Parametroak:

Number: Errore-kodea, zenbaki gisa edo kate gisa. Balio lehenetsia Err Basic funtzio integratuarena da.

Source: Errorearen kokalekua, zenbaki gisa edo kate gisa. Balio lehenetsia Erl Basic funtzio integratuarena da.

Description: Erabiltzaileari erakutsiko zaion eta kontsolan jakinaraziko den mezua. Balio lehenetsia Error$ Basic funtzio integratuarena da.

Adibidea:


    SF_Exception.RaiseWarning(Source:="Example_Raise()", _
        Description:="Something wrong happened !", _
        Number:="MyAppError")
  

Emaguzu laguntza!