diff --git a/language/errors/php7.xml b/language/errors/php7.xml
index f2858eb914..5f5e3e71dc 100644
--- a/language/errors/php7.xml
+++ b/language/errors/php7.xml
@@ -29,10 +29,45 @@
block or a set_exception_handler handler is required.
-
- A list of Error subclasses can be found in the
- error function section of the manual.
-
+
+ Error hierarchy
+
+
+
+ Throwable
+
+
+ Error
+
+
+ ArithmeticError
+
+
+ AssertionError
+
+
+ DivisionByZeroError
+
+
+ ParseError
+
+
+ TypeError
+
+
+
+
+ Exception
+
+
+ ...
+
+
+
+
+
+
+
+
+
+ ArithmeticError
+ ArithmeticError
+
+
+
+
+
+ &reftitle.intro;
+
+ ArithmeticError is thrown when
+ an error occurs while performing mathematical operations. In PHP 7.0,
+ these errors include attempting to perform a bitshift by a negative
+ amount, and any call to intdiv that would result in a
+ value outside the possible bounds of an integer.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ ArithmeticError
+
+
+
+
+ ArithmeticError
+
+
+
+ extends
+ Error
+
+
+
+
+ &InheritedMethods;
+
+
+
+
+
+
+
+
+
+
diff --git a/language/predefined/assertionerror.xml b/language/predefined/assertionerror.xml
new file mode 100644
index 0000000000..2107f4c7f0
--- /dev/null
+++ b/language/predefined/assertionerror.xml
@@ -0,0 +1,73 @@
+
+
+
+
+ AssertionError
+ AssertionError
+
+
+
+
+
+ &reftitle.intro;
+
+ AssertionError is thrown when
+ an assertion made via assert fails.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ AssertionError
+
+
+
+
+ AssertionError
+
+
+
+ extends
+ Error
+
+
+
+
+ &InheritedMethods;
+
+
+
+
+
+
+
+
+
+
diff --git a/language/predefined/divisionbyzeroerror.xml b/language/predefined/divisionbyzeroerror.xml
new file mode 100644
index 0000000000..fab1fa4bfe
--- /dev/null
+++ b/language/predefined/divisionbyzeroerror.xml
@@ -0,0 +1,73 @@
+
+
+
+
+ DivisionByZeroError
+ DivisionByZeroError
+
+
+
+
+
+ &reftitle.intro;
+
+ DivisionByZeroError is thrown
+ when an attempt is made to divide a number by zero.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ DivisionByZeroError
+
+
+
+
+ DivisionByZeroError
+
+
+
+ extends
+ Error
+
+
+
+
+ &InheritedMethods;
+
+
+
+
+
+
+
+
+
+
diff --git a/language/predefined/error.xml b/language/predefined/error.xml
new file mode 100644
index 0000000000..d99eba5f28
--- /dev/null
+++ b/language/predefined/error.xml
@@ -0,0 +1,73 @@
+
+
+
+
+ Error
+ Error
+
+
+
+
+
+ &reftitle.intro;
+
+ Error is the base class for all
+ internal PHP error exceptions.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ Error
+
+
+
+
+ Error
+
+
+
+ implements
+ Throwable
+
+
+
+
+ &InheritedMethods;
+
+
+
+
+
+
+
+
+
+
diff --git a/language/predefined/exception.xml b/language/predefined/exception.xml
index 220186728d..bd8406e687 100644
--- a/language/predefined/exception.xml
+++ b/language/predefined/exception.xml
@@ -16,7 +16,12 @@
&reftitle.intro;
Exception is the base class for
- all Exceptions.
+ all Exceptions in PHP 5, and the base class for all user exceptions in PHP
+ 7.
+
+
+ In PHP 7, Exception implements the
+ Throwable interface.
diff --git a/language/predefined/exceptions.xml b/language/predefined/exceptions.xml
index e4115db710..a8d92bef0f 100644
--- a/language/predefined/exceptions.xml
+++ b/language/predefined/exceptions.xml
@@ -13,6 +13,14 @@
&language.predefined.exception;
&language.predefined.errorexception;
+
+ &language.predefined.error;
+ &language.predefined.arithmeticerror;
+ &language.predefined.assertionerror;
+ &language.predefined.divisionbyzeroerror;
+ &language.predefined.parseerror;
+ &language.predefined.typeerror;
+
+
+ ParseError
+ ParseError
+
+
+
+
+
+ &reftitle.intro;
+
+ ParseError is thrown when an
+ error occurs while parsing PHP code, such as when
+ eval is called.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ ParseError
+
+
+
+
+ ParseError
+
+
+
+ extends
+ Error
+
+
+
+
+ &InheritedMethods;
+
+
+
+
+
+
+
+
+
+
diff --git a/language/predefined/throwable.xml b/language/predefined/throwable.xml
index 019357bd1d..8a4476a75b 100644
--- a/language/predefined/throwable.xml
+++ b/language/predefined/throwable.xml
@@ -13,7 +13,7 @@
&reftitle.intro;
Throwable is the base interface for any object that
- can be thrown via a &throw; statement, including
+ can be thrown via a &throw; statement in PHP 7, including
Error and Exception.
diff --git a/language/predefined/typeerror.xml b/language/predefined/typeerror.xml
new file mode 100644
index 0000000000..d08061bed7
--- /dev/null
+++ b/language/predefined/typeerror.xml
@@ -0,0 +1,73 @@
+
+
+
+
+ TypeError
+ TypeError
+
+
+
+
+
+ &reftitle.intro;
+
+ TypeError is thrown when strict
+ typing is enabled and an invalid argument is given to a function.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ TypeError
+
+
+
+
+ TypeError
+
+
+
+ extends
+ Error
+
+
+
+
+ &InheritedMethods;
+
+
+
+
+
+
+
+
+
+
diff --git a/language/predefined/versions.xml b/language/predefined/versions.xml
index dedf714cb4..6a571eaf7e 100644
--- a/language/predefined/versions.xml
+++ b/language/predefined/versions.xml
@@ -7,6 +7,13 @@
+
+
+
+
+
+
+