summaryrefslogtreecommitdiffabout
path: root/htdocs/exceptions/compile.chtml
blob: 68dd034b5edf7bda7bde6865906a0d1d9a348fe5 (plain)
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
% html(); return; /* vim:set ft=sitecing: */
%%derive layout = "/ancestry/layout.chtml";
<%constructor>
 b_strict = false;
 PN_PREV("/exceptions/preprocess","preprocess","preprocessing errors");
 PN_NEXT("/exceptions/runtime","runtime","runtime exceptions");
</%constructor>
<%codemethod string title() %>
 return "compile-time exceptions handling";
</%codemethod>
<%method void content() %>
 <h1>site-C-ing compile-time exception handling</h1>
 <p>
  Similar to <a href="/exceptions/preprocess">preprocessing exceptions</a>
  there is a wide range of errors you may put into your code which will pass
  through preprocessor and will be caught later at the compile-time.
 </p>
 <p>
  Once you complete writing your <a
  href="/view/htdocs/exceptions/development/compile.chtml" target="insert"
  title="the link opens in the frame below">erroneous code</a> and
  <em>site-C-ing</em> is done preprocessing it, it will feed the preprocessed
  code into c++ compiler which will refuse to compile the code like this. This
  is where <a href="/view/htdocs/handlers/exception_dev" target="insert"
  title="the link opens in the frame below">the exception handler</a>,
  specified in <a href="/view/htdocs/exceptions/development/.scrc"
  target="insert" title="the link opens in the frame below">the configuration
  file</a>, takes over the process and gives you <a
  href="/exceptions/development/compile" target="insert" title="the link opens
  in the frame below">the report</a>.  Like with any handler, you may wish to
  set some <a href="/view/htdocs/handlers/exception_prod" target="insert"
  title="the link opens in the frame below">different handler</a> in your <a
  href="/view/htdocs/exceptions/production/.scrc" target="insert" title="the
  link opens in the frame below">production configuration</a>, which just gives
  user <a href="/exceptions/production/preprocess" target="insert" title="the
  link opens in the frame below">a friendly yet lame excuse</a>.
 </p>
 <p class="note">
  Note, that these output pages are fakes -- I do not want to spawn the
  compiler each time you want to see the output and put this unnecessary load
  on cpu. These static pages are in fact saved output of the real exception
  handlers.
 </p>

 <div class="insert">
  <iframe id="insert" name="insert" src="about:blank" width="95%" height="300">
   <p>I wanted to put an &lt;iframe&gt; here, but your browser does not seem to
   support it. That is okay, it still will open links somehow.</p>
  </iframe>
 </div>

</%method>