php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_exceptions.h
Go to the documentation of this file.
1/*
2 +----------------------------------------------------------------------+
3 | Zend Engine |
4 +----------------------------------------------------------------------+
5 | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) |
6 +----------------------------------------------------------------------+
7 | This source file is subject to version 2.00 of the Zend license, |
8 | that is bundled with this package in the file LICENSE, and is |
9 | available through the world-wide-web at the following url: |
10 | http://www.zend.com/license/2_00.txt. |
11 | If you did not receive a copy of the Zend license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@zend.com so we can mail you a copy immediately. |
14 +----------------------------------------------------------------------+
15 | Authors: Andi Gutmans <andi@php.net> |
16 | Marcus Boerger <helly@php.net> |
17 | Sterling Hughes <sterling@php.net> |
18 | Zeev Suraski <zeev@php.net> |
19 +----------------------------------------------------------------------+
20*/
21
22#ifndef ZEND_EXCEPTIONS_H
23#define ZEND_EXCEPTIONS_H
24
25#include "zend_types.h"
26
28
42
46
48
50
52
53/* Deprecated - Use zend_ce_exception directly instead */
55
56/* Deprecated - Use zend_ce_error_exception directly instead */
58
60
61/* exception_ce NULL, zend_ce_exception, zend_ce_error, or a derived class
62 * message NULL or the message of the exception */
63ZEND_API ZEND_COLD zend_object *zend_throw_exception(zend_class_entry *exception_ce, const char *message, zend_long code);
67
68ZEND_API zend_object *zend_throw_error_exception(zend_class_entry *exception_ce, zend_string *message, zend_long code, int severity);
69
71
72/* show an exception using zend_error(severity,...), severity should be E_ERROR */
75ZEND_API zend_string *zend_trace_to_string(HashTable *trace, bool include_main);
76
83
84#include "zend_globals.h"
85
86static zend_always_inline void zend_rethrow_exception(zend_execute_data *execute_data)
87{
88 if (EX(opline)->opcode != ZEND_HANDLE_EXCEPTION) {
89 EG(opline_before_exception) = EX(opline);
90 EX(opline) = EG(exception_op);
91 }
92}
93
95
96#endif
bool exception
Definition assert.c:30
printf(string $format, mixed ... $values)
#define prefix
zend_object * ex
struct _zval_struct zval
#define EX(element)
#define ZEND_API
ZEND_API void zend_register_default_classes(void)
ZEND_API zend_class_entry * zend_ce_arithmetic_error
ZEND_API ZEND_COLD zend_object * zend_throw_error_exception(zend_class_entry *exception_ce, zend_string *message, zend_long code, int severity)
ZEND_API ZEND_COLD void zend_throw_exception_internal(zend_object *exception)
void zend_exception_restore(void)
ZEND_API zend_class_entry * zend_exception_get_default(void)
ZEND_API bool zend_is_unwind_exit(const zend_object *ex)
ZEND_API zend_string * zend_trace_to_string(HashTable *trace, bool include_main)
void zend_register_default_exception(void)
ZEND_API zend_class_entry * zend_ce_exception
ZEND_API ZEND_COLD void zend_throw_exception_object(zval *exception)
ZEND_API zend_class_entry * zend_ce_value_error
void zend_exception_save(void)
ZEND_API zend_class_entry * zend_ce_type_error
ZEND_API zend_class_entry * zend_ce_error_exception
ZEND_API zend_class_entry * zend_ce_compile_error
ZEND_API ZEND_COLD zend_object * zend_create_unwind_exit(void)
ZEND_API zend_class_entry * zend_ce_unhandled_match_error
ZEND_API bool zend_is_graceful_exit(const zend_object *ex)
ZEND_API ZEND_COLD zend_result zend_exception_error(zend_object *ex, int severity)
ZEND_API ZEND_COLD zend_object * zend_throw_exception(zend_class_entry *exception_ce, const char *message, zend_long code)
ZEND_API ZEND_COLD void zend_throw_graceful_exit(void)
ZEND_API ZEND_COLD zend_object * zend_create_graceful_exit(void)
ZEND_API void(* zend_throw_exception_hook)(zend_object *ex)
ZEND_API zend_class_entry * zend_ce_division_by_zero_error
ZEND_NORETURN void zend_exception_uncaught_error(const char *format,...)
ZEND_API ZEND_COLD void zend_throw_unwind_exit(void)
ZEND_API zend_class_entry * zend_ce_request_parse_body_exception
ZEND_API zend_class_entry * zend_ce_parse_error
ZEND_API zend_class_entry * zend_ce_argument_count_error
ZEND_API void zend_clear_exception(void)
ZEND_API ZEND_COLD zend_object * zend_throw_exception_ex(zend_class_entry *exception_ce, zend_long code, const char *format,...)
ZEND_API zend_class_entry * zend_ce_throwable
ZEND_API zend_class_entry * zend_get_error_exception(void)
void zend_exception_set_previous(zend_object *exception, zend_object *add_previous)
ZEND_API zend_class_entry * zend_get_exception_base(zend_object *object)
ZEND_API zend_class_entry * zend_ce_error
#define EG(v)
int32_t zend_long
Definition zend_long.h:42
struct _zend_string zend_string
#define END_EXTERN_C()
#define zend_always_inline
#define ZEND_ATTRIBUTE_FORMAT(type, idx, first)
#define ZEND_COLD
#define ZEND_NORETURN
#define BEGIN_EXTERN_C()
struct _zend_class_entry zend_class_entry
struct _zend_object zend_object
struct _zend_array HashTable
Definition zend_types.h:386
ZEND_RESULT_CODE zend_result
Definition zend_types.h:64
struct _zend_execute_data zend_execute_data
Definition zend_types.h:91
execute_data
#define ZEND_HANDLE_EXCEPTION