MV Errors and Exceptions - modrpc/info GitHub Wiki

Overview

Errors and exceptions are more frequent in dynamic languages since there are no static type checkers. Also, MV is a distributed programming language and new types of errors can be encountered -- e.g. timeout.

Error Handling

When an error situation occurs, depending who is the "originator of this function/reactor evaluation":

  • if it's remote device: send a message
  • if it's local device: create an event

Types of Errors

Runtime Type Errors

  • ERR_TYPE_detail: Each operator (e.g. +, -, =) has some predefined set(s) of allowed values (i.e. type(s)) for each operand. If a value with invalid (latent) type is passed, an error is generated.

Function Call Errors

Timeout Errors

Security Errors

System Errors

  • ERR_SYS_MAX_PROP: resource limitation reached
  • ERR_SYS_MAX_EVENT: resource limitation reached
  • ERR_SYS_MAX_FUNC: resource limitation reached
  • ERR_SYS_MAX_REACTOR: resource limitation reached
  • ERR_SYS_MAX_SUBSCRIBE: resource limitation reached
  • ERR_SYS_MAX_RESOURCE: resource limitation reached
  • ERR_SYS_FCALL_MAX: too many suspended function calls; cannot serve more