Edukiak

# 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.

- 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:

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.

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

## Zerbitzuari deitzea

Before using the Exception service the ScriptForge library needs to be loaded or imported:

• Basic makroak erabiltzkeo, ScriptForge liburutegia kargatu behar da honako instrukzioa erabiliz:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python scriptak erabiltzeko, berriz, scriptforge modulu baten inportazioa behar dute:
from scriptforge import CreateScriptService

##### 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.

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

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 PythonPrint | PythonShell Raise RaiseWarning

## Clear

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

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

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

## PythonPrint

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.

Metodo hau Basic scriptetan soilik dago erabilgarri.

### Sintaxia:

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

### Parametroak:

arg0[, arg1, ...]: Edozein motatako edozein argumentu kopurua. Banakako argumentu bakoitzaren gehieneko luzera 1.024 karaktere dira.

### Adibidea:

        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.

## 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.

Metodo hau erabiltzeko, APSO (Alternative Script Organizer for Python) hedapena instalatu behar da. Era berean, APSOk behar du LibreOffice Python scriptgintzako lan-markoa presente egotea. APSO edo Python falta badira, errorea gertatuko da.

### Sintaxia:

exc.PythonShell(opt variables: dict, background = 0xFDF6E3, foreground = 0x657B83)

### 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.

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.

### Adibidea:

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!")

## 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.

Metodo hau Basic scriptetan soilik dago erabilgarri.

### Sintaxia:

        SF_Exception.Raise(Number := Err, [Source := Erl], [Description := Error$])

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: The error code, as a number or as a string. Default value is that of Err Basic builtin function, in which case Number is optional.

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.

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.

Metodo hau Basic scriptetan soilik dago erabilgarri.

### Sintaxia:

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

### Parametroak:

Number: The error code, as a number or as a string. Default value is that of Err Basic builtin function, in which case Number is optional.

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.

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")

Erlazionatutako gaiak

Erroreak maneiatzeko funtzioak