⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 php_exception.asp

📁 W3Schools tutorial..web designing
💻 ASP
📖 第 1 页 / 共 2 页
字号:
	the e-mail address is invalid</li>
	<li>The &quot;catch&quot; block catches the exception and displays the error message</li>
</ol>
<hr />

<h2>Multiple Exceptions</h2>
<p>It is possible for a script to use multiple exceptions to check for multiple 
conditions.</p>
<p>It is possible to use several if..else blocks, a switch, or nest multiple 
exceptions. These exceptions can use different exception classes and return 
different error messages:</p>

<table class="ex" cellspacing="0" border="1" width="100%" id="table51">
  <tr>
    <td>
    <pre>&lt;?php
class customException extends Exception
{
public function errorMessage()
{
//error message
$errorMsg = 'Error on line '.$this-&gt;getLine().' in '.$this-&gt;getFile()
.': &lt;b&gt;'.$this-&gt;getMessage().'&lt;/b&gt; is not a valid E-Mail address';
return $errorMsg;
}
}

$email = &quot;someone@example.com&quot;;

try
 {
 //check if 
 if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)
  {
  //throw exception if email is not valid
  throw new customException($email);
  }
 //check for &quot;example&quot; in mail address
 if(strpos($email, &quot;example&quot;) !== FALSE)
  {
  throw new Exception(&quot;$email is an example e-mail&quot;);
  }
 }

catch (customException $e)
 {
 echo $e-&gt;errorMessage();
 }</pre>
	<pre>catch(Exception $e)
 {
 echo $e-&gt;getMessage();
 }
?&gt;</pre>
    </td>
</tr>
</table>

<h2>Example explained:</h2>
<p>The code above tests two conditions and throws an exception if any of the 
conditions are not met:</p>
<ol>
	<li>The customException() class is created as an extension of the old 
	exception class. This way it inherits all methods and properties from the 
	old exception class</li>
	<li>The errorMessage() function is created. This function returns an error 
	message if an e-mail address is invalid</li>
	<li>The $email variable is set to a string that is a valid e-mail 
	address, but contains the string &quot;example&quot;</li>
	<li>The &quot;try&quot; block is executed and an exception is not thrown on 
	the first condition</li>
	<li>The second condition triggers an exception since the e-mail contains the 
	string &quot;example&quot;</li>
	<li>The &quot;catch&quot; block catches the exception and displays the 
	correct error message</li>
</ol>
<p>If there was no customException catch, only the base exception catch, the 
exception would be handled there</p>
<hr />

<h2>Re-throwing Exceptions</h2>
<p>Sometimes, when an exception is thrown, you may wish to handle it 
differently than the standard way. It is possible to throw an exception a second 
time within a &quot;catch&quot; block.</p>
<p>A script should hide system errors from users. System errors may be important 
for the coder, but is of no interest to the user. To make things easier for the 
user you can re-throw the exception with a user friendly message:</p>

<table class="ex" cellspacing="0" border="1" width="100%" id="table52">
  <tr>
    <td>
    <pre>&lt;?php
class customException extends Exception
 {
 public function errorMessage()
  {
  //error message
  $errorMsg = $this-&gt;getMessage().' is not a valid E-Mail address.';
  return $errorMsg;
  }
 }</pre>
	<pre>$email = &quot;someone@example.com&quot;;</pre>
	<pre>try
 {
 try
  {
  //check for &quot;example&quot; in mail address
  if(strpos($email, &quot;example&quot;) !== FALSE)
   {
   //throw exception if email is not valid
   throw new Exception($email);
   }
  }
 catch(Exception $e)
  {
  //re-throw exception
  throw new customException($email);
  }
 }</pre>
	<pre>catch (customException $e)
 {
 //display custom message
 echo $e-&gt;errorMessage();
 }
?&gt;</pre>
    </td>
</tr>
</table>

<h2>Example explained:</h2>
<p>The code above tests if the email-address contains the string &quot;example&quot; in 
it, if it does, the exception is re-thrown:</p>
<ol>
	<li>The customException() class is created as an extension of the old 
	exception class. This way it inherits all methods and properties from the 
	old exception class</li>
	<li>The errorMessage() function is created. This function returns an error 
	message if an e-mail address is invalid</li>
	<li>The $email variable is set to a string that is a valid e-mail 
	address, but contains the string &quot;example&quot;</li>
	<li>The &quot;try&quot; block contains another &quot;try&quot; block to make it 
	possible to re-throw the exception</li>
	<li>The exception is triggered since the e-mail contains the string 
	&quot;example&quot;</li>
	<li>The &quot;catch&quot; block catches the exception and re-throws a &quot;customException&quot;</li>
	<li>The &quot;customException&quot; is caught and displays an error message</li>
</ol>
<p>If the exception is not caught in it's current &quot;try&quot; block, it will search 
for a catch block on &quot;higher levels&quot;.</p>
<hr />

<h2>Set a Top Level Exception Handler</h2>
<p>The set_exception_handler() function sets a user-defined function to handle all 
uncaught exceptions.
</p>
<table class="ex" id="table53" border="1" cellspacing="0" width="100%">
	<tr>
		<td>
		<pre>&lt;?php
function myException($exception)
{
echo &quot;&lt;b&gt;Exception:&lt;/b&gt; &quot; , $exception-&gt;getMessage();
}</pre>
		<pre>set_exception_handler('myException');</pre>
		<pre>throw new Exception('Uncaught Exception occurred');
?&gt;</pre>
		</td>
	</tr>
</table>
<p>The output of the code above should be something like this:</p>
<table class="ex" id="table54" border="1" cellspacing="0" width="100%">
	<tr>
		<td>
		<pre><b>Exception:</b> Uncaught Exception occurred</pre>
		</td>
	</tr>
</table>
<p>In the code above there was no &quot;catch&quot; block. Instead, the top level 
exception handler triggered. This function should be used to catch uncaught 
exceptions.<br />
</p>
<hr />

<h2>Rules for exceptions</h2>
<ul>
	<li>Code may be surrounded in a try block, to help catch potential 
	exceptions</li>
	<li>Each try block or &quot;throw&quot; must have at least one corresponding catch 
	block</li>
	<li>Multiple catch blocks can be used to catch different classes of 
	exceptions</li>
	<li>Exceptions can be thrown (or re-thrown) in a catch block within a try 
	block</li>
</ul>
<p>A simple rule: If you throw something, you have to catch it.</p>
<hr />

<a href="php_error.asp"><img alt="previous" border="0" src="../images/btn_previous.gif" width="100" height="20" /></a>
<a href="php_filter.asp"><img alt="next" border="0" src="../images/btn_next.gif" width="100" height="20" /></a>

<br />
<hr />

<!-- **** SPOTLIGHTS 1 **** -->

<iframe src="../banners/aspallframe.asp" height="110" width="485"
marginwidth="0" marginheight="0" frameborder="0" scrolling="no">
Your browser does not support inline frames or is currently configured not to display inline frames.
</iframe>
<hr />
<!-- **** SPOTLIGHTS 2 **** -->

<table border="0" cellpadding="0" cellspacing="0">

<tr>
<td rowspan="3" align="left" valign="top">
<img src="../images/stylusstudio_01.gif" width="118" height="470" alt="" align="top" /></td>
<td colspan="2" align="left" valign="top">
<img src="../images/stylusstudio_02.gif" width="376" height="154" alt="" /></td>
<td rowspan="3" align="left" valign="top">
<img src="../images/stylusstudio_03.gif" width="6" height="470" alt="" /></td>
</tr>

<tr>
<td colspan="2" bgcolor="#e9eaec">
<table width="376" border="0" cellspacing="5" cellpadding="0">
<tr align="left" valign="top">
<td><strong>Learn XML with Stylus Studio XML Editor &#150; Free Download<br /></strong><br />
Stylus Studio provides tools for editing and debugging
<a style="color:#1675b2" href="../../www.stylusstudio.com/xml/editor/default.htm" target="_blank">XML</a>,
<a style="color:#1675b2" href="../../www.stylusstudio.com/xslt.html" target="_blank">XSLT</a>,
<a style="color:#1675b2" href="../../www.stylusstudio.com/xml_schema.html" target="_blank">XML Schema</a>,
<a style="color:#1675b2" href="../../www.stylusstudio.com/dtd.html" target="_blank">DTD</a>,
<a style="color:#1675b2" href="../../www.stylusstudio.com/xquery.html" target="_blank">XQuery</a>,
<a style="color:#1675b2" href="../../www.stylusstudio.com/web_services.html" target="_blank">Web Services</a>,and more!<br /><br />
<strong>Using Stylus Studio XML Tools You Can:<br /></strong>
<ul>
<li type="disc" style="margin-bottom:5px">
<a style="color:#1675b2" href="../../www.stylusstudio.com/convert_to_xml.html" target="_blank">
Convert any File to XML</a> (CSV, Tab-separated, HTML, EDI &amp; more.)</li>
<li type="disc" style="margin-bottom:5px">
<a style="color:#1675b2" href="../../www.stylusstudio.com/videos/ddxqdemo/datadirectxquery.html" target="_blank">
Access and Update any database as XML</a> (SQL Server, Oracle, MySQL &amp; more.)</li>
<li type="disc" style="margin-bottom:5px">
View, Edit, Parse, and Validate XML files.</li>
<li type="disc">
<a style="color:#1675b2" href="../../www.stylusstudio.com/xml/publishing.html" target="_blank">
Publish your data</a>, including <a style="color:#1675b2" href="../../www.stylusstudio.com/videos/publisher1/publisher1.html" target="_blank">XML to HTML</a>
or <a style="color:#1675b2" href="../../www.stylusstudio.com/xml_to_pdf.html" target="_blank">XML to PDF</a></li>
</ul>

<p>See why millions use Stylus Studio as their preferred XML tool. Download a
<a style="color:#1675b2" href="../../www.stylusstudio.com/xml_download.html" target="_blank">FREE TRIAL</a>
or watch an online <a style="color:#1675b2" href="../../www.stylusstudio.com/xml_videos.html" target="_blank">VIDEO DEMO</a> today!</p>
</td>
</tr>
</table>
</td>
</tr>

<tr>
<td align="left" valign="top">
<a href="../../www.stylusstudio.com/xml_download.html" target="_blank">
<img name="stylusstudio_05" src="../images/stylusstudio_05.gif" width="159" height="35" align="top" border="0" alt=""
onmouseover="this.src='../images/stylusstudio_05-over.gif'" onmouseout="this.src='../images/stylusstudio_05.gif'" />
</a></td>
<td align="left" valign="top">
<a href="../../www.stylusstudio.com/xml_videos.html" target="_blank">
<img name="stylusstudio_06" src="../images/stylusstudio_06.gif" width="217" height="35" align="top" border="0" alt=""
onmouseover="this.src='../images/stylusstudio_06-over.gif'" onmouseout="this.src='../images/stylusstudio_06.gif'" /></a></td>
</tr>
</table>
<hr />


<!-- **** SPOTLIGHTS 3 **** -->
<table cellpadding="0" cellspacing="0"><tr><td width="72"></td><td>
<script type="text/javascript"><!--
google_ad_client = "pub-3440800076797949";
/*txt*/
google_ad_slot = "1699448869";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="../../pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td></tr></table>
<hr />

<center>

<script type="text/javascript"><!--
google_ad_client = "pub-3440800076797949";
/*imgtxt*/
google_ad_slot = "8606855891";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="../../pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

</center>
<hr />


<!-- **** END SPOTLIGHTS **** -->

</td></tr>

<tr><td>
<p>Jump to: <a href="#top" target="_top"><b>Top of Page</b></a>
or <a href="../default.asp" target="_top"><b>HOME</b></a> or
<a href='php_exception.asp@output=print' target="_blank">
<img src="../images/print.gif" alt="Printer Friendly" border="0" />
<b>Printer friendly page</b></a></p>
<p>W3Schools provides material for training only. We do not warrant the correctness of its contents.
The risk from using it lies entirely with the user.
While using this site, you agree to have read and accepted our
<a href="../about/about_copyright.asp">terms of use</a> and
<a href="../about/about_privacy.asp">privacy policy</a>.
</p>
<p><a href="../about/about_copyright.asp">Copyright 1999-2008</a> by Refsnes Data. All Rights Reserved.</p>
<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr>
<td width="60%" align="left">
<a href="../../validator.w3.org/check@uri=referer" target="_blank">
<img src="../images/vxhtml.gif" alt="Validate" width="88" height="31" border="0" /></a>
<a href="../../jigsaw.w3.org/css-validator/check@uri=referer" target="_blank">
<img src="../images/vcss.gif" alt="Validate" width="88" height="31" border="0" /></a>
<a href="../../www.w3.org/WAI/WCAG1A-Conformance" title="Explanation of Level A Conformance" target="_blank">
<img src="../images/wai.gif" alt="W3C-WAI level A conformance icon" width="88" height="31" border="0" /></a>
</td>
<td>
<a href="../xhtml/xhtml_howto.asp" target="_top">W3Schools was converted to XHTML in December 1999</a>
</td></tr>

</table>
</td></tr>
</table>
</td>


<td width="145" align="center" valign="top">




<iframe style="background-color:#f1f1f1" src="../banners/rightcolumn.asp@secid=php" height="1500" width="147"
marginwidth="0" marginheight="0" frameborder="0" scrolling="no">
</iframe>

</td>
</tr></table>

</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -