bug #18813 Catch \Throwable (fprochazka)

This PR was merged into the 2.7 branch.

Discussion
----------

Catch \Throwable

| Q             | A
| ------------- | ---
| Branch?       | 2.7, 2.8, 3.0
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | Yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Related symfony/symfony#18765, symfony/symfony#15949
Depends on symfony/symfony#18812

Commits
-------

103526b Catch \Throwable
This commit is contained in:
Fabien Potencier 2016-05-23 10:58:41 +02:00
commit f55680b3ab
4 changed files with 18 additions and 0 deletions

View File

@ -175,6 +175,10 @@ class DebugClassLoader
} catch (\Exception $e) {
ErrorHandler::unstackErrors();
throw $e;
} catch (\Throwable $e) {
ErrorHandler::unstackErrors();
throw $e;
}

View File

@ -447,6 +447,10 @@ class ErrorHandler
} catch (\Exception $e) {
$this->isRecursive = false;
throw $e;
} catch (\Throwable $e) {
$this->isRecursive = false;
throw $e;
}
}
@ -555,6 +559,8 @@ class ErrorHandler
}
} catch (\Exception $exception) {
// Handled below
} catch (\Throwable $exception) {
// Handled below
}
if ($error && $error['type'] &= E_PARSE | E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR) {

View File

@ -861,6 +861,9 @@ class OptionsResolver implements Options, OptionsResolverInterface
} catch (\Exception $e) {
unset($this->calling[$option]);
throw $e;
} catch (\Throwable $e) {
unset($this->calling[$option]);
throw $e;
}
unset($this->calling[$option]);
// END
@ -963,6 +966,9 @@ class OptionsResolver implements Options, OptionsResolverInterface
} catch (\Exception $e) {
unset($this->calling[$option]);
throw $e;
} catch (\Throwable $e) {
unset($this->calling[$option]);
throw $e;
}
unset($this->calling[$option]);
// END

View File

@ -141,6 +141,8 @@ abstract class AbstractDumper implements DataDumperInterface, DumperInterface
$this->dumpLine(-1);
} catch (\Exception $exception) {
// Re-thrown below
} catch (\Throwable $exception) {
// Re-thrown below
}
if ($output) {
$this->setOutput($prevOutput);