Errors

Error is the parent type for errors in Chapel. TaskErrors is the type of errors thrown from parallel constructs where more than one error can be simultaneously encountered.

class Error

Error is the base class for errors

proc Error()

Construct an Error

proc message()

Override this method to provide an error message in case the error is printed out or never caught.

proc writeThis(f)

Errors can be printed out. In that event, they will show information about the error including the result of calling Error.message.

class NilThrownError: Error

If a nil Error is thrown, NilThrownError will be thrown instead.

class TaskErrors: Error

TaskErrors stores multiple errors when they can come up. For example, a coforall loop might throw errors from multiple tasks at the same time. These errors will be reported to the parent task at the end of the coforall in the form of TaskErrors.

Note that errors thrown within a coforall, cobegin, or forall are represented as elements of TaskErrors. In the case of nesting, all errors will be stored in a single TaskErrors.

Errors thrown in begin tasks will be reported within a TaskErrors to the task that uses sync to wait for those begin tasks.

proc append(err: Error)

append a single error to the group

proc TaskErrors(err: Error)

Create a TaskErrors containing only the passed error

proc TaskErrors()

Create a TaskErrors not containing any errors

iter these()

Iterate over the errors contained in this TaskErrors. For example

var taskErrors:TaskErrors = ...;
for containedError in taskErrors {
  // Do something with the contained error
}
proc message(): string

Returns a string summarizing the errors contained in this TaskErrors. The summary is intended to be concise: it will not grow arbitrarily long if the TaskErrors contains many errors.

iter filter(type t)

Iterate over those errors contained that are the passed type or a subclass of that type.

proc contains(type t)

Returns true if this TaskErrors contains an error of the given type or a subclass of that type.