Normalizes `Exception` objects and PHP error data into a single array format, and checks each error against the list of expected errors (set using `expectException()`). If a match is found, the expectation is removed from the stack and the error is ignored. If no match is found, 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);
	}