主要内容

本页采用了机器翻译。点击此处可查看英文原文。

处理函数处理错误

评估 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 - MATLAB 错误 ID

  • 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()

另请参阅

主题