Deployed 9aa1693 to 5.4 with MkDocs 1.1.2 and mike 1.0.0
[GitHub/WoltLab/woltlab.github.io.git] / 5.4 / php / exceptions / index.html
CommitLineData
45ca63d0
TD
1
2<!doctype html>
3<html lang="en" class="no-js">
4 <head>
5
6 <meta charset="utf-8">
7 <meta name="viewport" content="width=device-width,initial-scale=1">
8
9
10
11
c8b4da45
WG
12 <link rel="canonical" href="https://docs.woltlab.com/5.4/php/exceptions/">
13
fb962f09 14 <link rel="icon" href="../../assets/default.favicon.ico">
c476b0e3 15 <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-7.1.3">
45ca63d0
TD
16
17
18
19 <title>Exceptions - WoltLab Suite Documentation</title>
20
21
22
c476b0e3 23 <link rel="stylesheet" href="../../assets/stylesheets/main.e35208c4.min.css">
45ca63d0
TD
24
25
fb962f09 26 <link rel="stylesheet" href="../../assets/stylesheets/palette.ef6f36e2.min.css">
45ca63d0
TD
27
28
29
30 <meta name="theme-color" content="#009485">
31
32
33
34
35
fd8430cb
WG
36
37
45ca63d0
TD
38
39
40 <link rel="stylesheet" href="../../stylesheets/extra.css">
41
42
43
44
45
46 </head>
47
48
49
50
51
52
53
54 <body dir="ltr" data-md-color-scheme="" data-md-color-primary="teal" data-md-color-accent="">
45ca63d0
TD
55
56
fb962f09
WG
57 <script>function __prefix(e){return new URL("../..",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script>
58
45ca63d0
TD
59 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
60 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
61 <label class="md-overlay" for="__drawer"></label>
62 <div data-md-component="skip">
63
64
789eb8fa 65 <a href="#exceptions" class="md-skip">
45ca63d0
TD
66 Skip to content
67 </a>
68
69 </div>
70 <div data-md-component="announce">
71
72 <aside class="md-announce">
73 <div class="md-announce__inner md-grid md-typeset">
74
75 <a href="https://www.woltlab.com">Back to <strong>woltlab.com</strong></a>
76
77 </div>
78 </aside>
79
80 </div>
81
fb962f09 82 <header class="md-header" data-md-component="header">
45ca63d0 83 <nav class="md-header__inner md-grid" aria-label="Header">
fb962f09 84 <a href="../.." title="WoltLab Suite Documentation" class="md-header__button md-logo" aria-label="WoltLab Suite Documentation" data-md-component="logo">
45ca63d0
TD
85
86 <img src="../../assets/logo.png" alt="logo">
87
88 </a>
89 <label class="md-header__button md-icon" for="__drawer">
90 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
91 </label>
92 <div class="md-header__title" data-md-component="header-title">
93 <div class="md-header__ellipsis">
94 <div class="md-header__topic">
95 <span class="md-ellipsis">
96 WoltLab Suite Documentation
97 </span>
98 </div>
99 <div class="md-header__topic" data-md-component="header-topic">
100 <span class="md-ellipsis">
101
102 Exceptions
103
104 </span>
105 </div>
106 </div>
45ca63d0
TD
107 </div>
108
fb962f09
WG
109
110
a3639e76
WG
111 <label class="md-header__button md-icon" for="__search">
112 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
113 </label>
114
115<div class="md-search" data-md-component="search" role="dialog">
116 <label class="md-search__overlay" for="__search"></label>
117 <div class="md-search__inner" role="search">
118 <form class="md-search__form" name="search">
119 <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
120 <label class="md-search__icon md-icon" for="__search">
121 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
122 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
123 </label>
124 <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
fb962f09 125 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
a3639e76
WG
126 </button>
127 </form>
128 <div class="md-search__output">
129 <div class="md-search__scrollwrap" data-md-scrollfix>
130 <div class="md-search-result" data-md-component="search-result">
131 <div class="md-search-result__meta">
132 Initializing search
133 </div>
134 <ol class="md-search-result__list"></ol>
135 </div>
136 </div>
137 </div>
138 </div>
139</div>
140
45ca63d0 141
7124f4cb
WG
142 <div class="md-header__source">
143
144<a href="https://github.com/WoltLab/docs.woltlab.com/" title="Go to repository" class="md-source" data-md-component="source">
145 <div class="md-source__icon md-icon">
146
fb962f09 147 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
7124f4cb
WG
148 </div>
149 <div class="md-source__repository">
150 GitHub
151 </div>
152</a>
153 </div>
154
45ca63d0
TD
155 </nav>
156</header>
157
158 <div class="md-container" data-md-component="container">
159
160
161
162
163 <main class="md-main" data-md-component="main">
164 <div class="md-main__inner md-grid">
165
166
167
168 <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
169 <div class="md-sidebar__scrollwrap">
170 <div class="md-sidebar__inner">
171
172
173
45ca63d0
TD
174<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
175 <label class="md-nav__title" for="__drawer">
fb962f09 176 <a href="../.." title="WoltLab Suite Documentation" class="md-nav__button md-logo" aria-label="WoltLab Suite Documentation" data-md-component="logo">
45ca63d0
TD
177
178 <img src="../../assets/logo.png" alt="logo">
179
180 </a>
181 WoltLab Suite Documentation
182 </label>
183
7124f4cb
WG
184 <div class="md-nav__source">
185
186<a href="https://github.com/WoltLab/docs.woltlab.com/" title="Go to repository" class="md-source" data-md-component="source">
187 <div class="md-source__icon md-icon">
188
fb962f09 189 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
7124f4cb
WG
190 </div>
191 <div class="md-source__repository">
192 GitHub
193 </div>
194</a>
195 </div>
196
45ca63d0
TD
197 <ul class="md-nav__list" data-md-scrollfix>
198
199
200
201
202
203
204
205
206 <li class="md-nav__item">
207 <a href="../../getting-started/" class="md-nav__link">
208 Getting Started
209 </a>
210 </li>
211
212
213
214
215
216
217
218
219
220
221
222
223
224 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
225
226
227 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" checked>
228
229 <label class="md-nav__link" for="__nav_2">
230 PHP API
231 <span class="md-nav__icon md-icon"></span>
232 </label>
233 <nav class="md-nav" aria-label="PHP API" data-md-level="1">
234 <label class="md-nav__title" for="__nav_2">
235 <span class="md-nav__icon md-icon"></span>
236 PHP API
237 </label>
238 <ul class="md-nav__list" data-md-scrollfix>
239
240
241
242
243
244 <li class="md-nav__item">
245 <a href="../pages/" class="md-nav__link">
246 Pages
247 </a>
248 </li>
249
250
251
252
253
254
255
256 <li class="md-nav__item">
257 <a href="../database-objects/" class="md-nav__link">
258 Database Objects
259 </a>
260 </li>
261
262
263
264
265
266
267
268 <li class="md-nav__item">
269 <a href="../database-access/" class="md-nav__link">
270 Database Access
271 </a>
272 </li>
273
274
275
276
277
278
279
280
281
282 <li class="md-nav__item md-nav__item--active">
283
284 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
285
a4835aa6 286
45ca63d0
TD
287
288
289
789eb8fa
WG
290 <label class="md-nav__link md-nav__link--active" for="__toc">
291 Exceptions
292 <span class="md-nav__icon md-icon"></span>
293 </label>
294
45ca63d0
TD
295 <a href="./" class="md-nav__link md-nav__link--active">
296 Exceptions
297 </a>
298
789eb8fa
WG
299
300<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
301
302
303
304
305
306
307 <label class="md-nav__title" for="__toc">
308 <span class="md-nav__icon md-icon"></span>
309 Table of contents
310 </label>
311 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
312
313 <li class="md-nav__item">
314 <a href="#spl-exceptions" class="md-nav__link">
315 SPL Exceptions
316 </a>
317
318</li>
319
320 <li class="md-nav__item">
321 <a href="#custom-exceptions" class="md-nav__link">
322 Custom Exceptions
323 </a>
324
325</li>
326
327 <li class="md-nav__item">
328 <a href="#sensitive-arguments-in-stack-traces" class="md-nav__link">
329 Sensitive Arguments in Stack Traces
330 </a>
331
332</li>
333
334 </ul>
335
336</nav>
337
45ca63d0
TD
338 </li>
339
340
341
342
343
344
345
346
347 <li class="md-nav__item md-nav__item--nested">
348
349
350 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" >
351
352 <label class="md-nav__link" for="__nav_2_5">
353 API
354 <span class="md-nav__icon md-icon"></span>
355 </label>
356 <nav class="md-nav" aria-label="API" data-md-level="2">
357 <label class="md-nav__title" for="__nav_2_5">
358 <span class="md-nav__icon md-icon"></span>
359 API
360 </label>
361 <ul class="md-nav__list" data-md-scrollfix>
362
363
364
365
366
6923e968
WG
367
368 <li class="md-nav__item md-nav__item--nested">
369
370
371 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5_1" type="checkbox" id="__nav_2_5_1" >
372
373 <label class="md-nav__link" for="__nav_2_5_1">
374 Caches
375 <span class="md-nav__icon md-icon"></span>
376 </label>
377 <nav class="md-nav" aria-label="Caches" data-md-level="3">
378 <label class="md-nav__title" for="__nav_2_5_1">
379 <span class="md-nav__icon md-icon"></span>
380 Caches
381 </label>
382 <ul class="md-nav__list" data-md-scrollfix>
383
384
385
386
387
45ca63d0
TD
388 <li class="md-nav__item">
389 <a href="../api/caches/" class="md-nav__link">
6923e968
WG
390 Overview
391 </a>
392 </li>
393
394
395
396
397
398
399
400 <li class="md-nav__item">
401 <a href="../api/caches_persistent-caches/" class="md-nav__link">
402 Persistent Caches
403 </a>
404 </li>
405
406
407
408
409
410
411
412 <li class="md-nav__item">
413 <a href="../api/caches_runtime-caches/" class="md-nav__link">
414 Runtime Caches
45ca63d0
TD
415 </a>
416 </li>
417
418
419
6923e968
WG
420 </ul>
421 </nav>
422 </li>
423
424
425
45ca63d0
TD
426
427
428
429
430 <li class="md-nav__item">
431 <a href="../api/comments/" class="md-nav__link">
432 Comments
433 </a>
434 </li>
435
436
437
438
439
440
441
442 <li class="md-nav__item">
443 <a href="../api/cronjobs/" class="md-nav__link">
444 Cronjobs
445 </a>
446 </li>
447
448
449
450
451
452
453
454 <li class="md-nav__item">
455 <a href="../api/events/" class="md-nav__link">
456 Events
457 </a>
458 </li>
459
460
461
462
463
464
465
466
467 <li class="md-nav__item md-nav__item--nested">
468
469
470 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5_5" type="checkbox" id="__nav_2_5_5" >
471
472 <label class="md-nav__link" for="__nav_2_5_5">
473 Form Builder
474 <span class="md-nav__icon md-icon"></span>
475 </label>
476 <nav class="md-nav" aria-label="Form Builder" data-md-level="3">
477 <label class="md-nav__title" for="__nav_2_5_5">
478 <span class="md-nav__icon md-icon"></span>
479 Form Builder
480 </label>
481 <ul class="md-nav__list" data-md-scrollfix>
482
483
484
485
486
487 <li class="md-nav__item">
488 <a href="../api/form_builder/overview/" class="md-nav__link">
489 Overview
490 </a>
491 </li>
492
493
494
495
496
497
498
499 <li class="md-nav__item">
500 <a href="../api/form_builder/structure/" class="md-nav__link">
501 Structure
502 </a>
503 </li>
504
505
506
507
508
509
510
511 <li class="md-nav__item">
512 <a href="../api/form_builder/form_fields/" class="md-nav__link">
513 Fields
514 </a>
515 </li>
516
517
518
519
520
521
522
523 <li class="md-nav__item">
524 <a href="../api/form_builder/validation_data/" class="md-nav__link">
525 Validation and Data
526 </a>
527 </li>
528
529
530
531
532
533
534
535 <li class="md-nav__item">
536 <a href="../api/form_builder/dependencies/" class="md-nav__link">
537 Dependencies
538 </a>
539 </li>
540
541
542
543 </ul>
544 </nav>
545 </li>
546
547
548
549
550
551
552
553 <li class="md-nav__item">
554 <a href="../api/package_installation_plugins/" class="md-nav__link">
555 Package Installation Plugins
556 </a>
557 </li>
558
559
560
561
562
563
564
565 <li class="md-nav__item">
566 <a href="../api/user_activity_points/" class="md-nav__link">
567 User Activity Points
568 </a>
569 </li>
570
571
572
573
574
575
576
577 <li class="md-nav__item">
578 <a href="../api/user_notifications/" class="md-nav__link">
579 User Notifications
580 </a>
581 </li>
582
583
584
585
586
587
588
589 <li class="md-nav__item">
590 <a href="../api/sitemaps/" class="md-nav__link">
591 Sitemaps
592 </a>
593 </li>
594
595
596
597 </ul>
598 </nav>
599 </li>
600
601
602
603
604
605
606
607 <li class="md-nav__item">
608 <a href="../code-style/" class="md-nav__link">
609 Code Style
610 </a>
611 </li>
612
613
614
615
616
617
618
619 <li class="md-nav__item">
620 <a href="../apps/" class="md-nav__link">
621 Apps
622 </a>
623 </li>
624
625
626
627
628
629
630
631 <li class="md-nav__item">
632 <a href="../gdpr/" class="md-nav__link">
633 GDPR
634 </a>
635 </li>
636
637
638
639 </ul>
640 </nav>
641 </li>
642
643
644
645
646
647
648
649
650
651
652
653 <li class="md-nav__item md-nav__item--nested">
654
655
656 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
657
658 <label class="md-nav__link" for="__nav_3">
659 Languages, Templates & CSS
660 <span class="md-nav__icon md-icon"></span>
661 </label>
662 <nav class="md-nav" aria-label="Languages, Templates & CSS" data-md-level="1">
663 <label class="md-nav__title" for="__nav_3">
664 <span class="md-nav__icon md-icon"></span>
665 Languages, Templates & CSS
666 </label>
667 <ul class="md-nav__list" data-md-scrollfix>
668
669
670
671
672
673 <li class="md-nav__item">
674 <a href="../../view/languages/" class="md-nav__link">
675 Languages
676 </a>
677 </li>
678
679
680
681
682
683
684
685 <li class="md-nav__item">
686 <a href="../../view/templates/" class="md-nav__link">
687 Templates
688 </a>
689 </li>
690
691
692
693
694
695
696
6923e968
WG
697 <li class="md-nav__item">
698 <a href="../../view/template-plugins/" class="md-nav__link">
699 Template Plugins
700 </a>
701 </li>
702
703
704
705
706
707
708
45ca63d0
TD
709 <li class="md-nav__item">
710 <a href="../../view/css/" class="md-nav__link">
711 CSS
712 </a>
713 </li>
714
715
716
717 </ul>
718 </nav>
719 </li>
720
721
722
723
724
725
726
727
728
729
730
731 <li class="md-nav__item md-nav__item--nested">
732
733
734 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
735
736 <label class="md-nav__link" for="__nav_4">
77efcd46 737 TypeScript and JavaScript API
45ca63d0
TD
738 <span class="md-nav__icon md-icon"></span>
739 </label>
77efcd46 740 <nav class="md-nav" aria-label="TypeScript and JavaScript API" data-md-level="1">
45ca63d0
TD
741 <label class="md-nav__title" for="__nav_4">
742 <span class="md-nav__icon md-icon"></span>
77efcd46 743 TypeScript and JavaScript API
45ca63d0
TD
744 </label>
745 <ul class="md-nav__list" data-md-scrollfix>
746
747
748
749
750
751 <li class="md-nav__item">
752 <a href="../../javascript/general-usage/" class="md-nav__link">
753 General Usage
754 </a>
755 </li>
756
757
758
759
760
761
762
77efcd46
WG
763 <li class="md-nav__item">
764 <a href="../../javascript/typescript/" class="md-nav__link">
765 TypeScript
766 </a>
767 </li>
768
769
770
771
772
773
774
45ca63d0
TD
775
776 <li class="md-nav__item md-nav__item--nested">
777
778
77efcd46 779 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_3" type="checkbox" id="__nav_4_3" >
45ca63d0 780
77efcd46 781 <label class="md-nav__link" for="__nav_4_3">
45ca63d0
TD
782 New API
783 <span class="md-nav__icon md-icon"></span>
784 </label>
785 <nav class="md-nav" aria-label="New API" data-md-level="2">
77efcd46 786 <label class="md-nav__title" for="__nav_4_3">
45ca63d0
TD
787 <span class="md-nav__icon md-icon"></span>
788 New API
789 </label>
790 <ul class="md-nav__list" data-md-scrollfix>
791
792
793
794
795
796 <li class="md-nav__item">
797 <a href="../../javascript/new-api_writing-a-module/" class="md-nav__link">
798 Writing a module
799 </a>
800 </li>
801
802
803
804
805
806
807
808 <li class="md-nav__item">
809 <a href="../../javascript/new-api_data-structures/" class="md-nav__link">
810 Data Structures
811 </a>
812 </li>
813
814
815
816
817
818
819
820 <li class="md-nav__item">
821 <a href="../../javascript/new-api_core/" class="md-nav__link">
822 Core Functions
823 </a>
824 </li>
825
826
827
828
829
830
831
832 <li class="md-nav__item">
833 <a href="../../javascript/new-api_dom/" class="md-nav__link">
834 DOM
835 </a>
836 </li>
837
838
839
840
841
842
843
844 <li class="md-nav__item">
845 <a href="../../javascript/new-api_events/" class="md-nav__link">
846 Event Handling
847 </a>
848 </li>
849
850
851
852
853
854
855
856 <li class="md-nav__item">
857 <a href="../../javascript/new-api_ajax/" class="md-nav__link">
858 Ajax
859 </a>
860 </li>
861
862
863
864
865
866
867
868 <li class="md-nav__item">
869 <a href="../../javascript/new-api_dialogs/" class="md-nav__link">
870 Dialogs
871 </a>
872 </li>
873
874
875
876
877
878
879
880 <li class="md-nav__item">
881 <a href="../../javascript/new-api_browser/" class="md-nav__link">
882 Browser and Screen Sizes
883 </a>
884 </li>
885
886
887
888
889
890
891
892 <li class="md-nav__item">
893 <a href="../../javascript/new-api_ui/" class="md-nav__link">
894 User Interface
895 </a>
896 </li>
897
898
899
900 </ul>
901 </nav>
902 </li>
903
904
905
906
907
908
909
910 <li class="md-nav__item">
911 <a href="../../javascript/legacy-api/" class="md-nav__link">
912 Legacy API
913 </a>
914 </li>
915
916
917
918
919
920
921
922 <li class="md-nav__item">
923 <a href="../../javascript/helper-functions/" class="md-nav__link">
924 Helper Functions
925 </a>
926 </li>
927
928
929
930
931
932
933
934 <li class="md-nav__item">
935 <a href="../../javascript/code-snippets/" class="md-nav__link">
936 Code Snippets
937 </a>
938 </li>
939
940
941
942 </ul>
943 </nav>
944 </li>
945
946
947
948
949
950
951
952
953
954
955
956 <li class="md-nav__item md-nav__item--nested">
957
958
959 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
960
961 <label class="md-nav__link" for="__nav_5">
962 Package Components
963 <span class="md-nav__icon md-icon"></span>
964 </label>
965 <nav class="md-nav" aria-label="Package Components" data-md-level="1">
966 <label class="md-nav__title" for="__nav_5">
967 <span class="md-nav__icon md-icon"></span>
968 Package Components
969 </label>
970 <ul class="md-nav__list" data-md-scrollfix>
971
972
973
974
975
976 <li class="md-nav__item">
977 <a href="../../package/package-xml/" class="md-nav__link">
978 package.xml
979 </a>
980 </li>
981
982
983
984
985
986
987
988
989 <li class="md-nav__item md-nav__item--nested">
990
991
992 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_2" type="checkbox" id="__nav_5_2" >
993
994 <label class="md-nav__link" for="__nav_5_2">
995 PIPs
996 <span class="md-nav__icon md-icon"></span>
997 </label>
998 <nav class="md-nav" aria-label="PIPs" data-md-level="2">
999 <label class="md-nav__title" for="__nav_5_2">
1000 <span class="md-nav__icon md-icon"></span>
1001 PIPs
1002 </label>
1003 <ul class="md-nav__list" data-md-scrollfix>
1004
1005
1006
1007
1008
1009 <li class="md-nav__item">
1010 <a href="../../package/pip/" class="md-nav__link">
1011 Overview
1012 </a>
1013 </li>
1014
1015
1016
1017
1018
1019
1020
1021 <li class="md-nav__item">
1022 <a href="../../package/pip/acl-option/" class="md-nav__link">
1023 aclOption
1024 </a>
1025 </li>
1026
1027
1028
1029
1030
1031
1032
1033 <li class="md-nav__item">
1034 <a href="../../package/pip/acp-menu/" class="md-nav__link">
1035 acpMenu
1036 </a>
1037 </li>
1038
1039
1040
1041
1042
1043
1044
1045 <li class="md-nav__item">
1046 <a href="../../package/pip/acp-search-provider/" class="md-nav__link">
1047 acpSearchProvider
1048 </a>
1049 </li>
1050
1051
1052
1053
1054
1055
1056
1057 <li class="md-nav__item">
1058 <a href="../../package/pip/acp-template/" class="md-nav__link">
1059 acpTemplate
1060 </a>
1061 </li>
1062
1063
1064
1065
1066
1067
1068
1069 <li class="md-nav__item">
1070 <a href="../../package/pip/bbcode/" class="md-nav__link">
1071 bbcode
1072 </a>
1073 </li>
1074
1075
1076
1077
1078
1079
1080
1081 <li class="md-nav__item">
1082 <a href="../../package/pip/box/" class="md-nav__link">
1083 box
1084 </a>
1085 </li>
1086
1087
1088
1089
1090
1091
1092
1093 <li class="md-nav__item">
1094 <a href="../../package/pip/clipboard-action/" class="md-nav__link">
1095 clipboardAction
1096 </a>
1097 </li>
1098
1099
1100
1101
1102
1103
1104
1105 <li class="md-nav__item">
1106 <a href="../../package/pip/core-object/" class="md-nav__link">
1107 coreObject
1108 </a>
1109 </li>
1110
1111
1112
1113
1114
1115
1116
1117 <li class="md-nav__item">
1118 <a href="../../package/pip/cronjob/" class="md-nav__link">
1119 cronjob
1120 </a>
1121 </li>
1122
1123
1124
1125
1126
1127
1128
6923e968
WG
1129 <li class="md-nav__item">
1130 <a href="../../package/pip/database/" class="md-nav__link">
1131 database
1132 </a>
1133 </li>
1134
1135
1136
1137
1138
1139
1140
45ca63d0
TD
1141 <li class="md-nav__item">
1142 <a href="../../package/pip/event-listener/" class="md-nav__link">
1143 eventListener
1144 </a>
1145 </li>
1146
1147
1148
1149
1150
1151
1152
1153 <li class="md-nav__item">
1154 <a href="../../package/pip/file/" class="md-nav__link">
1155 file
1156 </a>
1157 </li>
1158
1159
1160
1161
1162
1163
1164
1165 <li class="md-nav__item">
1166 <a href="../../package/pip/language/" class="md-nav__link">
1167 language
1168 </a>
1169 </li>
1170
1171
1172
1173
1174
1175
1176
1177 <li class="md-nav__item">
1178 <a href="../../package/pip/media-provider/" class="md-nav__link">
1179 mediaProvider
1180 </a>
1181 </li>
1182
1183
1184
1185
1186
1187
1188
1189 <li class="md-nav__item">
1190 <a href="../../package/pip/menu/" class="md-nav__link">
1191 menu
1192 </a>
1193 </li>
1194
1195
1196
1197
1198
1199
1200
1201 <li class="md-nav__item">
1202 <a href="../../package/pip/menu-item/" class="md-nav__link">
1203 menuItem
1204 </a>
1205 </li>
1206
1207
1208
1209
1210
1211
1212
1213 <li class="md-nav__item">
1214 <a href="../../package/pip/object-type/" class="md-nav__link">
1215 objectType
1216 </a>
1217 </li>
1218
1219
1220
1221
1222
1223
1224
1225 <li class="md-nav__item">
1226 <a href="../../package/pip/object-type-definition/" class="md-nav__link">
1227 objectTypeDefinition
1228 </a>
1229 </li>
1230
1231
1232
1233
1234
1235
1236
1237 <li class="md-nav__item">
1238 <a href="../../package/pip/option/" class="md-nav__link">
1239 option
1240 </a>
1241 </li>
1242
1243
1244
1245
1246
1247
1248
1249 <li class="md-nav__item">
1250 <a href="../../package/pip/page/" class="md-nav__link">
1251 page
1252 </a>
1253 </li>
1254
1255
1256
1257
1258
1259
1260
1261 <li class="md-nav__item">
1262 <a href="../../package/pip/pip/" class="md-nav__link">
1263 pip
1264 </a>
1265 </li>
1266
1267
1268
1269
1270
1271
1272
1273 <li class="md-nav__item">
1274 <a href="../../package/pip/script/" class="md-nav__link">
1275 script
1276 </a>
1277 </li>
1278
1279
1280
1281
1282
1283
1284
1285 <li class="md-nav__item">
1286 <a href="../../package/pip/smiley/" class="md-nav__link">
1287 smiley
1288 </a>
1289 </li>
1290
1291
1292
1293
1294
1295
1296
1297 <li class="md-nav__item">
1298 <a href="../../package/pip/sql/" class="md-nav__link">
1299 sql
1300 </a>
1301 </li>
1302
1303
1304
1305
1306
1307
1308
1309 <li class="md-nav__item">
1310 <a href="../../package/pip/style/" class="md-nav__link">
1311 style
1312 </a>
1313 </li>
1314
1315
1316
1317
1318
1319
1320
1321 <li class="md-nav__item">
1322 <a href="../../package/pip/template/" class="md-nav__link">
1323 template
1324 </a>
1325 </li>
1326
1327
1328
1329
1330
1331
1332
1333 <li class="md-nav__item">
1334 <a href="../../package/pip/template-listener/" class="md-nav__link">
1335 templateListener
1336 </a>
1337 </li>
1338
1339
1340
1341
1342
1343
1344
1345 <li class="md-nav__item">
1346 <a href="../../package/pip/user-group-option/" class="md-nav__link">
1347 userGroupOption
1348 </a>
1349 </li>
1350
1351
1352
1353
1354
1355
1356
1357 <li class="md-nav__item">
1358 <a href="../../package/pip/user-menu/" class="md-nav__link">
1359 userMenu
1360 </a>
1361 </li>
1362
1363
1364
1365
1366
1367
1368
1369 <li class="md-nav__item">
1370 <a href="../../package/pip/user-notification-event/" class="md-nav__link">
1371 userNotificationEvent
1372 </a>
1373 </li>
1374
1375
1376
1377
1378
1379
1380
1381 <li class="md-nav__item">
1382 <a href="../../package/pip/user-option/" class="md-nav__link">
1383 userOption
1384 </a>
1385 </li>
1386
1387
1388
1389
1390
1391
1392
1393 <li class="md-nav__item">
1394 <a href="../../package/pip/user-profile-menu/" class="md-nav__link">
1395 userProfileMenu
1396 </a>
1397 </li>
1398
1399
1400
1401 </ul>
1402 </nav>
1403 </li>
1404
1405
1406
1407
1408
1409
1410
1411 <li class="md-nav__item">
1412 <a href="../../package/database-php-api/" class="md-nav__link">
1413 Database PHP API
1414 </a>
1415 </li>
1416
1417
1418
1419 </ul>
1420 </nav>
1421 </li>
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433 <li class="md-nav__item md-nav__item--nested">
1434
1435
1436 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
1437
1438 <label class="md-nav__link" for="__nav_6">
1439 Migration
1440 <span class="md-nav__icon md-icon"></span>
1441 </label>
1442 <nav class="md-nav" aria-label="Migration" data-md-level="1">
1443 <label class="md-nav__title" for="__nav_6">
1444 <span class="md-nav__icon md-icon"></span>
1445 Migration
1446 </label>
1447 <ul class="md-nav__list" data-md-scrollfix>
1448
1449
1450
1451
1452
1453
1454 <li class="md-nav__item md-nav__item--nested">
1455
1456
1457 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_1" type="checkbox" id="__nav_6_1" >
1458
1459 <label class="md-nav__link" for="__nav_6_1">
1460 Migrating from WSC 5.3
1461 <span class="md-nav__icon md-icon"></span>
1462 </label>
1463 <nav class="md-nav" aria-label="Migrating from WSC 5.3" data-md-level="2">
1464 <label class="md-nav__title" for="__nav_6_1">
1465 <span class="md-nav__icon md-icon"></span>
1466 Migrating from WSC 5.3
1467 </label>
1468 <ul class="md-nav__list" data-md-scrollfix>
1469
1470
1471
1472
1473
1474 <li class="md-nav__item">
1475 <a href="../../migration/wsc53/php/" class="md-nav__link">
1476 PHP API
1477 </a>
1478 </li>
1479
1480
1481
1482
1483
1484
1485
1486 <li class="md-nav__item">
1487 <a href="../../migration/wsc53/session/" class="md-nav__link">
1488 Session Handling and Authentication
1489 </a>
1490 </li>
1491
1492
1493
1494
1495
1496
1497
1498 <li class="md-nav__item">
1499 <a href="../../migration/wsc53/javascript/" class="md-nav__link">
77efcd46 1500 TypeScript and JavaScript
45ca63d0
TD
1501 </a>
1502 </li>
1503
1504
1505
1506
1507
1508
1509
1510 <li class="md-nav__item">
1511 <a href="../../migration/wsc53/templates/" class="md-nav__link">
1512 Templates
1513 </a>
1514 </li>
1515
1516
1517
1518
1519
1520
1521
1522 <li class="md-nav__item">
1523 <a href="../../migration/wsc53/libraries/" class="md-nav__link">
1524 Third Party Libraries
1525 </a>
1526 </li>
1527
1528
1529
1530 </ul>
1531 </nav>
1532 </li>
1533
1534
1535
1536
1537
1538
1539
1540
1541 <li class="md-nav__item md-nav__item--nested">
1542
1543
1544 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
1545
1546 <label class="md-nav__link" for="__nav_6_2">
1547 Migrating from WSC 5.2
1548 <span class="md-nav__icon md-icon"></span>
1549 </label>
1550 <nav class="md-nav" aria-label="Migrating from WSC 5.2" data-md-level="2">
1551 <label class="md-nav__title" for="__nav_6_2">
1552 <span class="md-nav__icon md-icon"></span>
1553 Migrating from WSC 5.2
1554 </label>
1555 <ul class="md-nav__list" data-md-scrollfix>
1556
1557
1558
1559
1560
1561 <li class="md-nav__item">
1562 <a href="../../migration/wsc52/php/" class="md-nav__link">
1563 PHP API
1564 </a>
1565 </li>
1566
1567
1568
1569
1570
1571
1572
1573 <li class="md-nav__item">
1574 <a href="../../migration/wsc52/templates/" class="md-nav__link">
1575 Templates and Languages
1576 </a>
1577 </li>
1578
1579
1580
1581
1582
1583
1584
1585 <li class="md-nav__item">
1586 <a href="../../migration/wsc52/libraries/" class="md-nav__link">
1587 Third Party Libraries
1588 </a>
1589 </li>
1590
1591
1592
1593 </ul>
1594 </nav>
1595 </li>
1596
1597
1598
1599
1600
1601
1602
1603
1604 <li class="md-nav__item md-nav__item--nested">
1605
1606
1607 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_3" type="checkbox" id="__nav_6_3" >
1608
1609 <label class="md-nav__link" for="__nav_6_3">
1610 Migrating from WSC 3.1
1611 <span class="md-nav__icon md-icon"></span>
1612 </label>
1613 <nav class="md-nav" aria-label="Migrating from WSC 3.1" data-md-level="2">
1614 <label class="md-nav__title" for="__nav_6_3">
1615 <span class="md-nav__icon md-icon"></span>
1616 Migrating from WSC 3.1
1617 </label>
1618 <ul class="md-nav__list" data-md-scrollfix>
1619
1620
1621
1622
1623
1624 <li class="md-nav__item">
1625 <a href="../../migration/wsc31/php/" class="md-nav__link">
1626 PHP API
1627 </a>
1628 </li>
1629
1630
1631
1632 </ul>
1633 </nav>
1634 </li>
1635
1636
1637
1638
1639
1640
1641
1642
1643 <li class="md-nav__item md-nav__item--nested">
1644
1645
1646 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_4" type="checkbox" id="__nav_6_4" >
1647
1648 <label class="md-nav__link" for="__nav_6_4">
1649 Migrating from WSC 3.0
1650 <span class="md-nav__icon md-icon"></span>
1651 </label>
1652 <nav class="md-nav" aria-label="Migrating from WSC 3.0" data-md-level="2">
1653 <label class="md-nav__title" for="__nav_6_4">
1654 <span class="md-nav__icon md-icon"></span>
1655 Migrating from WSC 3.0
1656 </label>
1657 <ul class="md-nav__list" data-md-scrollfix>
1658
1659
1660
1661
1662
1663 <li class="md-nav__item">
1664 <a href="../../migration/wsc30/php/" class="md-nav__link">
1665 PHP API
1666 </a>
1667 </li>
1668
1669
1670
1671
1672
1673
1674
1675 <li class="md-nav__item">
1676 <a href="../../migration/wsc30/javascript/" class="md-nav__link">
1677 JavaScript API
1678 </a>
1679 </li>
1680
1681
1682
1683
1684
1685
1686
1687 <li class="md-nav__item">
1688 <a href="../../migration/wsc30/templates/" class="md-nav__link">
1689 Templates
1690 </a>
1691 </li>
1692
1693
1694
1695
1696
1697
1698
1699 <li class="md-nav__item">
1700 <a href="../../migration/wsc30/css/" class="md-nav__link">
1701 CSS
1702 </a>
1703 </li>
1704
1705
1706
1707
1708
1709
1710
1711 <li class="md-nav__item">
1712 <a href="../../migration/wsc30/package/" class="md-nav__link">
1713 Package Components
1714 </a>
1715 </li>
1716
1717
1718
1719 </ul>
1720 </nav>
1721 </li>
1722
1723
1724
1725
1726
1727
1728
1729
1730 <li class="md-nav__item md-nav__item--nested">
1731
1732
1733 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_5" type="checkbox" id="__nav_6_5" >
1734
1735 <label class="md-nav__link" for="__nav_6_5">
1736 Migrating from WCF 2.1
1737 <span class="md-nav__icon md-icon"></span>
1738 </label>
1739 <nav class="md-nav" aria-label="Migrating from WCF 2.1" data-md-level="2">
1740 <label class="md-nav__title" for="__nav_6_5">
1741 <span class="md-nav__icon md-icon"></span>
1742 Migrating from WCF 2.1
1743 </label>
1744 <ul class="md-nav__list" data-md-scrollfix>
1745
1746
1747
1748
1749
1750 <li class="md-nav__item">
1751 <a href="../../migration/wcf21/php/" class="md-nav__link">
1752 PHP API
1753 </a>
1754 </li>
1755
1756
1757
1758
1759
1760
1761
1762 <li class="md-nav__item">
1763 <a href="../../migration/wcf21/templates/" class="md-nav__link">
1764 Templates
1765 </a>
1766 </li>
1767
1768
1769
1770
1771
1772
1773
1774 <li class="md-nav__item">
1775 <a href="../../migration/wcf21/css/" class="md-nav__link">
1776 CSS
1777 </a>
1778 </li>
1779
1780
1781
1782
1783
1784
1785
1786 <li class="md-nav__item">
1787 <a href="../../migration/wcf21/package/" class="md-nav__link">
1788 Package Components
1789 </a>
1790 </li>
1791
1792
1793
1794 </ul>
1795 </nav>
1796 </li>
1797
1798
1799
1800 </ul>
1801 </nav>
1802 </li>
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814 <li class="md-nav__item md-nav__item--nested">
1815
1816
1817 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
1818
1819 <label class="md-nav__link" for="__nav_7">
1820 Tutorials
1821 <span class="md-nav__icon md-icon"></span>
1822 </label>
1823 <nav class="md-nav" aria-label="Tutorials" data-md-level="1">
1824 <label class="md-nav__title" for="__nav_7">
1825 <span class="md-nav__icon md-icon"></span>
1826 Tutorials
1827 </label>
1828 <ul class="md-nav__list" data-md-scrollfix>
1829
1830
1831
1832
1833
1834
1835 <li class="md-nav__item md-nav__item--nested">
1836
1837
1838 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_1" type="checkbox" id="__nav_7_1" >
1839
1840 <label class="md-nav__link" for="__nav_7_1">
1841 Tutorial Series
1842 <span class="md-nav__icon md-icon"></span>
1843 </label>
1844 <nav class="md-nav" aria-label="Tutorial Series" data-md-level="2">
1845 <label class="md-nav__title" for="__nav_7_1">
1846 <span class="md-nav__icon md-icon"></span>
1847 Tutorial Series
1848 </label>
1849 <ul class="md-nav__list" data-md-scrollfix>
1850
1851
1852
1853
1854
1855 <li class="md-nav__item">
1856 <a href="../../tutorial/series/overview/" class="md-nav__link">
1857 Overview
1858 </a>
1859 </li>
1860
1861
1862
1863
1864
1865
1866
1867 <li class="md-nav__item">
1868 <a href="../../tutorial/series/part_1/" class="md-nav__link">
1869 Part 1
1870 </a>
1871 </li>
1872
1873
1874
1875
1876
1877
1878
1879 <li class="md-nav__item">
1880 <a href="../../tutorial/series/part_2/" class="md-nav__link">
1881 Part 2
1882 </a>
1883 </li>
1884
1885
1886
1887
1888
1889
1890
1891 <li class="md-nav__item">
1892 <a href="../../tutorial/series/part_3/" class="md-nav__link">
1893 Part 3
1894 </a>
1895 </li>
1896
1897
1898
41eda543
WG
1899
1900
1901
1902
1903 <li class="md-nav__item">
1904 <a href="../../tutorial/series/part_4/" class="md-nav__link">
1905 Part 4
1906 </a>
1907 </li>
1908
1909
1910
716a4ab6
WG
1911
1912
1913
1914
1915 <li class="md-nav__item">
1916 <a href="../../tutorial/series/part_5/" class="md-nav__link">
1917 Part 5
1918 </a>
1919 </li>
1920
1921
1922
45ca63d0
TD
1923 </ul>
1924 </nav>
1925 </li>
1926
1927
1928
1929 </ul>
1930 </nav>
1931 </li>
1932
1933
1934
1935 </ul>
1936</nav>
1937 </div>
1938 </div>
1939 </div>
1940
1941
1942
1943 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1944 <div class="md-sidebar__scrollwrap">
1945 <div class="md-sidebar__inner">
1946
1947<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1948
1949
a4835aa6 1950
45ca63d0
TD
1951
1952
1953
789eb8fa
WG
1954 <label class="md-nav__title" for="__toc">
1955 <span class="md-nav__icon md-icon"></span>
1956 Table of contents
1957 </label>
1958 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1959
1960 <li class="md-nav__item">
1961 <a href="#spl-exceptions" class="md-nav__link">
1962 SPL Exceptions
1963 </a>
1964
1965</li>
1966
1967 <li class="md-nav__item">
1968 <a href="#custom-exceptions" class="md-nav__link">
1969 Custom Exceptions
1970 </a>
1971
1972</li>
1973
1974 <li class="md-nav__item">
1975 <a href="#sensitive-arguments-in-stack-traces" class="md-nav__link">
1976 Sensitive Arguments in Stack Traces
1977 </a>
1978
1979</li>
1980
1981 </ul>
1982
45ca63d0
TD
1983</nav>
1984 </div>
1985 </div>
1986 </div>
1987
1988
1989 <div class="md-content" data-md-component="content">
1990 <article class="md-content__inner md-typeset">
1991
1992
9b8bddda 1993 <a href="https://github.com/WoltLab/docs.woltlab.com/edit/5.4/docs/php/exceptions.md" title="Edit this page" class="md-content__button md-icon">
7124f4cb
WG
1994 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg>
1995 </a>
1996
45ca63d0 1997
789eb8fa
WG
1998 <h1 id="exceptions">Exceptions<a class="headerlink" href="#exceptions" title="Permanent link">#</a></h1>
1999<h2 id="spl-exceptions">SPL Exceptions<a class="headerlink" href="#spl-exceptions" title="Permanent link">#</a></h2>
2000<p>The <a href="https://secure.php.net/manual/en/book.spl.php">Standard PHP Library (SPL)</a> provides some <a href="https://secure.php.net/manual/en/spl.exceptions.php">exceptions</a> that should be used whenever possible.</p>
2001<h2 id="custom-exceptions">Custom Exceptions<a class="headerlink" href="#custom-exceptions" title="Permanent link">#</a></h2>
2002<div class="admonition warning">
2003<p class="admonition-title">Do not use <code>wcf\system\exception\SystemException</code> anymore, use specific exception classes!</p>
2004</div>
2005<p>The following table contains a list of custom exceptions that are commonly used.
2006All of the exceptions are found in the <code>wcf\system\exception</code> namespace.</p>
2007<table>
2008<thead>
2009<tr>
2010<th>Class name</th>
2011<th>(examples) when to use</th>
2012</tr>
2013</thead>
2014<tbody>
2015<tr>
2016<td><code>IllegalLinkException</code></td>
2017<td>access to a page that belongs to a non-existing object, executing actions on specific non-existing objects (is shown as http 404 error to the user)</td>
2018</tr>
2019<tr>
2020<td><code>ImplementationException</code></td>
2021<td>a class does not implement an expected interface</td>
2022</tr>
2023<tr>
2024<td><code>InvalidObjectArgument</code></td>
2025<td><span class="label label-info">5.4+</span> API method support generic objects but specific implementation requires objects of specific (sub)class and different object is given</td>
2026</tr>
2027<tr>
2028<td><code>InvalidObjectTypeException</code></td>
2029<td>object type is not of an expected object type definition</td>
2030</tr>
2031<tr>
2032<td><code>InvalidSecurityTokenException</code></td>
2033<td>given security token does not match the security token of the active user's session</td>
2034</tr>
2035<tr>
2036<td><code>ParentClassException</code></td>
2037<td>a class does not extend an expected (parent) class</td>
2038</tr>
2039<tr>
2040<td><code>PermissionDeniedException</code></td>
2041<td>page access without permission, action execution without permission (is shown as http 403 error to the user)</td>
2042</tr>
2043<tr>
2044<td><code>UserInputException</code></td>
2045<td>user input does not pass validation</td>
2046</tr>
2047</tbody>
2048</table>
2049<h2 id="sensitive-arguments-in-stack-traces">Sensitive Arguments in Stack Traces<a class="headerlink" href="#sensitive-arguments-in-stack-traces" title="Permanent link">#</a></h2>
2050<p>Sometimes sensitive values are passed as a function or method argument.
2051If the callee throws an Exception, these values will be part of the Exception’s stack trace and logged, unless the Exception is caught and ignored.</p>
2052<p>WoltLab Suite will automatically suppress the values of parameters named like they might contain sensitive values, namely arguments matching the regular expression <code>/(?:^(?:password|passphrase|secret)|(?:Password|Passphrase|Secret))/</code>.</p>
2053<p>If you need to suppress additional arguments from appearing in the stack trace, you can add the <code>\wcf\SensitiveArgument</code> attribute to such parameters.
2054Arguments are only supported as of PHP 8 and ignored as comments in lower PHP versions.
2055In PHP 7, such arguments will not be suppressed, but the code will continue to work.
2056Make sure to insert a linebreak between the attribute and the parameter name.</p>
2057<p>Example:</p>
2058<div class="titledCodeBox">
2059 <div class="codeBoxTitle"><code>wcfsetup/install/files/lib/data/user/User.class.php</code></div>
5e5e8e5e
WG
2060<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
2061<span class="normal"> 2</span>
2062<span class="normal"> 3</span>
2063<span class="normal"> 4</span>
2064<span class="normal"> 5</span>
2065<span class="normal"> 6</span>
2066<span class="normal"> 7</span>
2067<span class="normal"> 8</span>
2068<span class="normal"> 9</span>
2069<span class="normal">10</span>
2070<span class="normal">11</span>
2071<span class="normal">12</span>
2072<span class="normal">13</span>
2073<span class="normal">14</span>
2074<span class="normal">15</span>
2075<span class="normal">16</span>
2076<span class="normal">17</span>
2077<span class="normal">18</span>
789eb8fa
WG
2078<span class="normal">19</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><code><span class="o">&lt;?</span><span class="nx">php</span>
2079
2080<span class="k">namespace</span> <span class="nx">wcf\data\user</span><span class="p">;</span>
2081
2082<span class="c1">// …</span>
2083
2084<span class="k">final</span> <span class="k">class</span> <span class="nc">User</span> <span class="k">extends</span> <span class="nx">DatabaseObject</span> <span class="k">implements</span> <span class="nx">IPopoverObject</span><span class="p">,</span> <span class="nx">IRouteController</span><span class="p">,</span> <span class="nx">IUserContent</span>
2085<span class="p">{</span>
2086 <span class="c1">// …</span>
2087
2088 <span class="k">public</span> <span class="k">function</span> <span class="nf">checkPassword</span><span class="p">(</span>
2089 <span class="c1">#[\wcf\SensitiveArgument()]</span>
2090 <span class="nv">$password</span>
2091 <span class="p">)</span> <span class="p">{</span>
2092 <span class="c1">// …</span>
2093 <span class="p">}</span>
2094
2095 <span class="c1">// …</span>
2096<span class="p">}</span>
5e5e8e5e
WG
2097</code></pre></div>
2098</td></tr></table>
789eb8fa 2099</div>
45ca63d0 2100
4a5c32e1
WG
2101
2102
2103
2104<hr>
2105<div class="md-source-date">
2106 <small>
2107
5e5e8e5e 2108 Last update: 2021-05-10
4a5c32e1
WG
2109
2110 </small>
2111</div>
2112
2113
45ca63d0
TD
2114
2115
2116
2117
2118
2119
2120 </article>
2121 </div>
2122 </div>
fb962f09 2123
45ca63d0
TD
2124 </main>
2125
2126
2127<footer class="md-footer">
2128
2129 <nav class="md-footer__inner md-grid" aria-label="Footer">
2130
2131 <a href="../database-access/" class="md-footer__link md-footer__link--prev" rel="prev">
2132 <div class="md-footer__button md-icon">
2133 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
2134 </div>
2135 <div class="md-footer__title">
2136 <div class="md-ellipsis">
2137 <span class="md-footer__direction">
2138 Previous
2139 </span>
2140 Database Access
2141 </div>
2142 </div>
2143 </a>
2144
2145
2146 <a href="../api/caches/" class="md-footer__link md-footer__link--next" rel="next">
2147 <div class="md-footer__title">
2148 <div class="md-ellipsis">
2149 <span class="md-footer__direction">
2150 Next
2151 </span>
6923e968 2152 Overview
45ca63d0
TD
2153 </div>
2154 </div>
2155 <div class="md-footer__button md-icon">
2156 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
2157 </div>
2158 </a>
2159
2160 </nav>
2161
2162 <div class="md-footer-meta md-typeset">
2163 <div class="md-footer-meta__inner md-grid">
2164 <div class="md-footer-copyright">
2165
2166 <div class="md-footer-copyright__highlight">
2167 Copyright © 2020 WoltLab GmbH
2168 </div>
2169
2170 Made with
2171 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2172 Material for MkDocs
2173 </a>
fb88dc6e 2174
45ca63d0
TD
2175 </div>
2176 <div class="md-footer-copyright">
2177 <a href="https://www.woltlab.com/legal-notice/">Legal Notice</a>
2178 <a href="https://www.woltlab.com/privacy-policy/">Privacy Policy</a>
2179</div>
2180 </div>
2181 </div>
2182</footer>
2183
2184 </div>
2185 <div class="md-dialog" data-md-component="dialog">
2186 <div class="md-dialog__inner md-typeset"></div>
2187 </div>
fb962f09 2188 <script id="__config" type="application/json">{"base": "../..", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}, "search": "../../assets/javascripts/workers/search.fe42c31b.min.js", "version": {"provider": "mike"}}</script>
45ca63d0
TD
2189
2190
a4835aa6 2191 <script src="../../assets/javascripts/bundle.4ea5477f.min.js"></script>
45ca63d0
TD
2192
2193
2194 </body>
2195</html>