Обработайте ошибки обработки функции

Общие типы исключений, которые могут произойти, когда выполняющие функции MATLAB® включают:

  • Ошибки HTTP — Обработанное использование исключения Python® httplib.HTTPException. Общие причины ошибок HTTP включают:

    • Используя неправильное архивное имя

    • Используя неправильное имя функции

    • При таймауте, прежде чем функция закончила оценивать

  • Ошибки MATLAB Runtime — Обработанное использование исключения matlab.mpsexception.MATLABException. Происходит, когда MATLAB Runtime генерирует ошибку при выполнении функции.

Ваш клиентский код должен обработать эти ошибки корректно.

Ошибки HTTP

Если ваш клиентский код испытывает какие-либо проблемы при отправке данных в или получении данных из экземпляра сервера, исключение httplib.HTTPException повышено. Частой причиной для ошибки HTTP является несоответствие имени между развернутыми артефактами на сервере и функциях, вызванных в клиенте.

Например, развертывая функциональный mutate() в архиве mutations следующие результаты по ошибке, потому что экземпляр сервера не смог бы разрешить имя архива.

import httplib
import matlab
from production_server import client

def main()
  my_client = client.MWHttpClient("http://localhost:9190")

  try:
    result = my_client.mutation.mutate("blue",10,12)
    ...
  except httplib.HTTPException as e:
    print e

Если вы развертываете функциональный mutate() в архиве mutations, следующие результаты по ошибке, потому что экземпляр сервера не смог бы разрешить имя функции.

import httplib
import matlab
from production_server import client

def main()
  my_client = client.MWHttpClient("http://localhost:9190")

  try:
    result = my_client.mutations.mutator("blue",10,12)
    ...
  except httplib.HTTPException as e:
    print e

Ошибки MATLAB Runtime

Если ошибка происходит, в то время как MATLAB Runtime выполняет функцию, исключение matlab.mpsexception.MATLABException повышено. Исключение содержит следующее:

  • ml_error_message — Сообщение об ошибке возвращено MATLAB Runtime

  • ml_error_identifier — Ошибочный ID MATLAB

  • Стек ml_error_stack — MATLAB Runtime

Эта функция фиксирует любые ошибки MATLAB Runtime и распечатывает их к консоли.

from matlab.production_server import client
from matlab.production_server import mpsexceptions
import sys

def main(size):

  my_client = client.MWHttpClient('http://localhost:9190')
  try:
    data = my_client.magic.mymagic(size)
    print data
  except mpsexceptions.MATLABException as e:
    print 'MATLAB Error: ',e

  my_client.close()