|
Posted by Yarco on 07/18/07 02:50
Erm...I'm thinking about the differences between error table and
exception.
It seems only one difference -- Exception can be caught in high level.
Do you mean we need to use them togather?
On Jul 17, 8:16 pm, Jerry Stuckle <jstuck...@attglobal.net> wrote:
> Yarco wrote:
> > Well, friend. Yes, I'm doing PHP. But exception is a traditional
> > machinism in programming languages. I'm very doubt about this.
> > In procedure language, we return error code when we meet an error. So
> > we need to design error code table and judge them in several
> > statements. Finally they become boring.
> > But how about use exception in OOP? Did we drop all "return error
> > code" styles?
> > If i want to fetch a webpage:
>
> > <?php
> > function fetchPage($url)
> > {
> > //...do something
>
> > //if the net speed is very slow, cause we can't fetch the page
> > throw new SlowNetSpeed("page can't be getted");
>
> > //if the page is moved
> > throw new NoPage("page does't exist");
>
> > //...do something
> > }
>
> > // so what can i do, if i want the fetchPage procedure go on fetching
> > when SlowNetSpeed Exception happen?
> > // it stop when NoPage Exception happen?
> > while (1)
> > {
> > try
> > {
> > $c = fetchPage('Some_Where');
> > // do something
> > break;
> > }
> > catch (SlowNetSpeed $e)
> > {
> > }
> > catch(NoPage $e)
> > {
> > break;
> > }
> > }
> > ?>
> > It is very ugly if there exists more Exceptions and other procedure.
>
> > Then i'm missing "return error code" style. But i know "return error
> > code" is not a good method when we deal with error. And exception is
> > also an ugly grammer when we want to keep code clean.
>
> Exceptions originally were designed to handle unexpected conditions,
> i.e. connection to a database failed. They really weren't designed to
> replace normal error processing (i.e. userid/password mismatch).
>
> Normal errors are generally handled by the calling routine, but
> unexpected conditions may be handled by the immediate caller - or
> several layers higher. Exceptions give the ability to handle the
> condition as high in the calling hierarchy as you need to, without
> having to pass return codes from each routine in the which has been called.
>
> I still use them in this way, and it works well.
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstuck...@attglobal.net
> ==================
[Back to original message]
|