lithium\test\Unit::_handleException()

protected method

Normalizes Exception objects and PHP error data into a single array format then the error data is logged to the test results.

Parameters

  • mixed $exception

    An Exception object instance, or an array containing the following keys: 'message', 'file', 'line', 'trace' (in debug_backtrace() format) and optionally 'code' (error code number) and 'context' (an array of variables relevant to the scope of where the error occurred).

  • integer $lineFlag

    A flag used for determining the relevant scope of the call stack. Set to the line number where test methods are called.

Returns

void

Source

	protected function _handleException($exception, $lineFlag = null) {
		$data = $exception;

		if (is_object($exception)) {
			$data = array();

			foreach (array('message', 'file', 'line', 'trace') as $key) {
				$method = 'get' . ucfirst($key);
				$data[$key] = $exception->{$method}();
			}
			$ref = $exception->getTrace();
			$ref = $ref[0] + array('class' => null);

			if ($ref['class'] === __CLASS__ && $ref['function'] === 'skipIf') {
				return $this->_result('skip', $data);
			}
		}
		return $this->_reportException($data, $lineFlag);
	}