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