- Notifications
You must be signed in to change notification settings - Fork 7.8k
/
Copy pathzend_exceptions.h
96 lines (76 loc) · 4.54 KB
/
zend_exceptions.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@php.net> |
| Marcus Boerger <helly@php.net> |
| Sterling Hughes <sterling@php.net> |
| Zeev Suraski <zeev@php.net> |
+----------------------------------------------------------------------+
*/
#ifndefZEND_EXCEPTIONS_H
#defineZEND_EXCEPTIONS_H
#include"zend_types.h"
BEGIN_EXTERN_C()
externZEND_APIzend_class_entry*zend_ce_throwable;
externZEND_APIzend_class_entry*zend_ce_exception;
externZEND_APIzend_class_entry*zend_ce_error_exception;
externZEND_APIzend_class_entry*zend_ce_error;
externZEND_APIzend_class_entry*zend_ce_compile_error;
externZEND_APIzend_class_entry*zend_ce_parse_error;
externZEND_APIzend_class_entry*zend_ce_type_error;
externZEND_APIzend_class_entry*zend_ce_argument_count_error;
externZEND_APIzend_class_entry*zend_ce_value_error;
externZEND_APIzend_class_entry*zend_ce_arithmetic_error;
externZEND_APIzend_class_entry*zend_ce_division_by_zero_error;
externZEND_APIzend_class_entry*zend_ce_unhandled_match_error;
externZEND_APIzend_class_entry*zend_ce_request_parse_body_exception;
ZEND_APIvoidzend_exception_set_previous(zend_object*exception, zend_object*add_previous);
ZEND_APIvoidzend_exception_save(void);
ZEND_APIvoidzend_exception_restore(void);
ZEND_APIZEND_COLDvoidzend_throw_exception_internal(zend_object*exception);
voidzend_register_default_exception(void);
ZEND_APIzend_class_entry*zend_get_exception_base(zend_object*object);
/* Deprecated - Use zend_ce_exception directly instead */
ZEND_APIzend_class_entry*zend_exception_get_default(void);
/* Deprecated - Use zend_ce_error_exception directly instead */
ZEND_APIzend_class_entry*zend_get_error_exception(void);
ZEND_APIvoidzend_register_default_classes(void);
/* exception_ce NULL, zend_ce_exception, zend_ce_error, or a derived class
* message NULL or the message of the exception */
ZEND_APIZEND_COLDzend_object*zend_throw_exception(zend_class_entry*exception_ce, constchar*message, zend_longcode);
ZEND_APIZEND_COLDzend_object*zend_throw_exception_ex(zend_class_entry*exception_ce, zend_longcode, constchar*format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 3, 4);
ZEND_APIZEND_COLDvoidzend_throw_exception_object(zval*exception);
ZEND_APIvoidzend_clear_exception(void);
ZEND_APIzend_object*zend_throw_error_exception(zend_class_entry*exception_ce, zend_string*message, zend_longcode, intseverity);
externZEND_APIvoid (*zend_throw_exception_hook)(zend_object*ex);
/* show an exception using zend_error(severity,...), severity should be E_ERROR */
ZEND_APIZEND_COLDzend_resultzend_exception_error(zend_object*exception, intseverity);
ZEND_NORETURNvoidzend_exception_uncaught_error(constchar*prefix, ...) ZEND_ATTRIBUTE_FORMAT(printf, 1, 2);
ZEND_APIzend_string*zend_trace_to_string(constHashTable*trace, boolinclude_main);
ZEND_APIZEND_COLDzend_object*zend_create_unwind_exit(void);
ZEND_APIZEND_COLDzend_object*zend_create_graceful_exit(void);
ZEND_APIZEND_COLDvoidzend_throw_unwind_exit(void);
ZEND_APIZEND_COLDvoidzend_throw_graceful_exit(void);
ZEND_APIboolzend_is_unwind_exit(constzend_object*ex);
ZEND_APIboolzend_is_graceful_exit(constzend_object*ex);
#include"zend_globals.h"
staticzend_always_inlinevoidzend_rethrow_exception(zend_execute_data*execute_data)
{
if (EX(opline)->opcode!=ZEND_HANDLE_EXCEPTION) {
EG(opline_before_exception) =EX(opline);
EX(opline) =EG(exception_op);
}
}
END_EXTERN_C()
#endif