LibreOffice 25.2 laguntza
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.
SF_Exception zerbitzua VBA Err objektuaren antzekoa da.
Number propietateak errorea identifikatzen du.
Erabili Raise metodoa prozesua eteteko. RaiseWarning metodoa makroaren exekuzioa eten gabe anormaltasun bat harrapatzeko erabili daiteke.
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:
Jakinarazi errorea Exception kontsolan
Erabiltzaileari errorearen berri eman, horretarako mezu estandar bat edo mezu pertsonalizatu bat erabilita
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.
Metodo eta propietate guztiak ez daude erabilgarri Python scriptetarako, Python lengoaiak berak salbuespenak maneiatzeko sistema osatua baitu.
Before using the Exception service the ScriptForge library needs to be loaded or imported:
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(...)
  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()
  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. | 
Exception bat sortzen edo garbitzen bada, bere propietateak berrezarri egingo dira.
| Exception zerbitzuaren metodoen zerrenda | ||
|---|---|---|
Uneko errore-egoera berrezartzen du eta SF_Exception propietateak garbitzen ditu.
    SF_Exception.Clear()
  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
  Basic lengoaiaren exekuzio-garaiko errore-kodeen zerrenda osoa ikusteko, begiratu Basic programa bat araztea.
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.
exc.Console(modal: bool = True)
modal: Kontsola-leihoa modala den (True) ala ez modala den (False) zehazten du. Balio lehenetsia True da.
        SF_Exception.Console(Modal := False)
  
    exc.Console(modal = False)
  Kontsola garbitzen du, aukeran azken aldiko mezuen kopuru bat utzita. Kontsola modu ez modalean aktibatu bada, freskatu egingo da.
exc.ConsoleClear(keep: int = 0)
keep: Mantenduko den azken aldiko mezuen kopurua. Balio lehenetsia 0 da.
Hurrengo adibideak kontsola garbitzen du eta azken 10 mezuak mantentzen ditu.
        SF_Exception.ConsoleClear(10)
  
    exc.ConsoleClear(10)
  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.
exc.ConsoleToFile(filename: str): bool
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.
        SF_Exception.ConsoleToFile("C:\Documents\myFile.txt")
  
    exc.ConsoleToFile(r"C:\Documents\myFile.txt")
  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.
exc.DebugDisplay(arg0: any, [arg1: any, ...])
arg0[, arg1, ...]: Edozein motatako edozein argumentu kopurua.
    SF_Exception.DebugDisplay("Current Value", someVar)
  
    exc.DebugDisplay("Current Value", someVar)
  Emandako argumentu guztiak gizakiak irakurri ahal izateko moduko kate batean elkarlotzen ditu eta kontsolan sarrera berri gisa gehitzen du.
exc.DebugPrint(arg0: any, [arg1: any, ...])
arg0[, arg1, ...]: Edozein motatako edozein argumentu kopurua.
    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
  
    exc.DebugPrint(None, [1, 2, 3], "line1\nline2")
    # None  [1, 2, 3]  line1\nline2
  Argumentuen zerrenda modu irakurgarrian bistaratzen du plataformaren kontsolan. Argumentuak TAB karaktereekin (zuriuneen bidez simulatuta) daude bereizita.
ScriptForge arazketa-konsolari kate bera gehituko zaio.
Python shell-a (APSO) aktibo badago, PythonPrint edukia APSO kontsolan idatziko da, plataformaren kontsolan egin ordez.
  exc.PythonPrint(arg0: any, [arg1: any, ...])
  arg0[, arg1, ...]: Edozein motatako edozein argumentu kopurua. Banakako argumentu bakoitzaren gehieneko luzera 1.024 karaktere dira.
    exc.PythonPrint(a, Array(1, 2, 3), , "line1" & Chr(10) & "Line2", DateSerial(2020, 04, 09))
  Python lengoaian, erabili print instrukzioa APSO kontsolan inprimatzeko edo erabili DebugPrint metodoa ScriptForgen kontsolan inprimatzeko.
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.
exc.PythonShell(opt variables: dict, background = 0xFDF6E3, foreground = 0x657B83)
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.
background: Background color of the console specified as RGB 24 bits integer value. Default background is that of APSO.
foreground: Foreground color of the console specified as RGB 24 bits integer value. Default foreground is that of APSO.
The example below opens the APSO Python shell passing all global and local variables considering the context where the script is running. Console is displayed with white characters on a black background.
    exc.PythonShell({**globals(), **locals()}, \
        background = 0x0, foreground = 0xFFFFFF)
  APSO Python kontsola irekita badago, scriptak inprimatutako hurrengo irteerak kontsolan erakutsiko dira. Beraz, beheko adibidean inprimatutako katea Python kontsolan bistaratuko da.
    s = CreateScriptService('Basic')
    RED, BLUE = s.RGB(255,0,0), s.RGB(0,0,255)
    exc.PythonShell(background=RED, foreground=BLUE)
    print("Kaixo mundua!")
  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.
    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
  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.
    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!")
  Metodo honek Raise() metodoaren sintaxi, argumentu eta portaera berak ditu.
Hala ere, abisu bat sortzen denean, makroaren exekuzioa ez da gelditzen.
    SF_Exception.RaiseWarning([Number As Variant], [Source As Variant], [Description As String])
  
    SF_Exception.RaiseWarning(Source:="Example_Raise()", _
        Description:="Something wrong happened !", _
        Number:="MyAppError")