GetLastErrorString method (Layer)

Возвращает текст последней ошибки, связанной с данным объектом слоя.

Применяется к:

Layer

Синтаксис:

Visual Basic:

Function GetLastErrorString() As String

Описание:

Текст соответствует коду, который возвращает метод GetLastErrorCode:

Код

Текст

0

OK

-1

Common error

-2

Coordinates transformation failed

-3

Spatial filter

-4

Wrong graphic type

-5

Empty buffer

-6

Out of memory

-7

Failed to start edit layer

-8

Failed to start read layer

-9

Invalid editor handle

-10

Editor is busy

-11

No license for editing

-12

Failed to write object

-13

Failed to write object. Disk full

-14

Wrong Type

-15

Wrong Mode

-16

Wrong Type or Mode

-17

Coordinates transformation failed

-18

Place for symbol is busy

-19

Wrong symbol ID

-20

Write to file failed

Успешная операция сбрасывает код ошибки в 0, и метод возвращает OK. Неудачная операция записывает свой код, только если после последней успешной операции ошибок ещё не было, поэтому метод возвращает текст первой из них.

Код и текст ошибки хранятся в каждом объекте Layer отдельно: другой объект, открытый для того же слоя, их не видит. Не всякая неудачная операция записывает код: например, DeleteElement для несуществующего ID возвращает -1, а код остаётся 0.

Пример:

Visual Basic:

Sub Layer_GetLastErrorString
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set R = L.GetBoundsRectangle
'Пытаемся добавить символ несуществующего типа
If L.AddSymbol(R.Xmax, R.Ymax, 99999, 1) = -1 Then
  MsgBox "Код ошибки: " & L.GetLastErrorCode & vbCrLf & _
         "Текст ошибки: " & L.GetLastErrorString
End If
End Sub

Python:

import zulu

def Macro_Layer_GetLastErrorString():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    R = L.GetBoundsRectangle()
    # Пытаемся добавить символ несуществующего типа
    if L.AddSymbol(R.Xmax, R.Ymax, 99999, 1) == -1:
        print("Код ошибки:", L.GetLastErrorCode())
        print("Текст ошибки:", L.GetLastErrorString())