HighDots Forums  

Re: throw e gestione degli errori

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss Re: throw e gestione degli errori in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
ZER0
 
Posts: n/a

Default Re: throw e gestione degli errori - 09-10-2003 , 07:02 AM






In article <3f5efbec.11682228 (AT) News (DOT) CIS.DFN.DE>, Faser
(invalid (AT) faser (DOT) net) says...

Quote:
Sto sviluppando un piccolo oggettino e vorrei fare una gestione degli
errori personale. Nel caso si verifica un errore vorrei passare il codice
d'errore ed un breve messaggio.

Ci possono però essere chiaramente due tipi di errori. Quelli gestiti dal
mio codice e quelli che possono verificarsi ugualmente. Come faccio ad
integrare le due cose
[cut]
ps: ho giò letto la reference su devedge :-)
Allora gia' dovresti sapere tutto.

Il throw permette di passare al catch un oggetto di qualsiasi tipo.
Puoi anche semplicemente passargli una stringa, cosi' come un oggetto
personalizzato complesso.
Puoi utilizzare le stesse proprieta' dell'oggetto che viene "lanciato"
per default da Mozilla (tanto so che sviluppi su questo :P ), come
"message", ed in piu' aggiungere una proprieta' per discriminare i due
tipi di errori (personalizzati, o non).

--
C'ya,
ZER0 :: coder.gfxer.webDesigner();

"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)


Reply With Quote
  #2  
Old   
Faser
 
Posts: n/a

Default Re: throw e gestione degli errori - 09-10-2003 , 07:25 AM






On Wed, 10 Sep 2003 14:02:24 +0200, ZER0 <zer0.shock (AT) libero (DOT) it> wrote:


Quote:
Allora gia' dovresti sapere tutto.
Si, nella teoria.

Quote:
Puoi utilizzare le stesse proprieta' dell'oggetto che viene "lanciato"
per default da Mozilla (tanto so che sviluppi su questo :P ), come
"message", ed in piu' aggiungere una proprieta' per discriminare i due
tipi di errori (personalizzati, o non).
Potrebbe essere una buona soluzione. Mi consigli di lanciare le eccezioni
con le stesse proprietà di quelli lanciati da Mozilla? Se facessi in modo
diverso chi usa l'oggetto dovrebbe distinguere nel catch tipo:

if (e instanceof MyEx) bla
else è quella di Mozilla

Giusto?

Ma ad esempio, in un contesto simile ?:


function Connection(url) {
this.url = url;
...bla bla
try {
this.req = new XMLHttpRequest();
req.overrideMimeType("text/xml");
//qui rilancio l'errore js
}catch(e){
throw(e);
}
}

Connection.prototype.send = function(method,string,blPermission,response) {
....bla bla bla

switch(method) {
case "GET":
...bla bla
break;

case "POST":
...bla ...bla
break;

default:
//Qui voglio lanciare un mio errore
throw("Method not supported")

}

...bla bla

var checkLoad = function () {
if(me.loaded) {
....
} else if(iter == 0) {
//Qui un altro mio errore ma io
// vorre magari passare un mio oggetto con
// che mappa il messaggio con un codice d'errore
throw('Connection has timed out. Aborted after '+
timeOut + ' seconds');
} else {
iter--;
}
};


}

----
Io però non vorrei scrivere il messaggio direttamente nel throw, ma passare
un codice d'errore che poi venga mappato con il messaggio d'errore nella
lingua prescelta, in modo tale che se chi usa l'oggetto lo rilancia
all'utente ad esempio con un alert(), il messaggio arrivi nella lingua
giusta.
Bah... non so se mi sono spiegato...diciamo che ho problemi organizzativi
:-)
Faser
--
FABIO SERRA
*Questo testo deve essere valutato secondo il senso della RFC-3*
Per rispondere in e-mail sostituire "invalid" con "faser"
--------------------


Reply With Quote
  #3  
Old   
ZER0
 
Posts: n/a

Default Re: throw e gestione degli errori - 09-10-2003 , 08:04 AM



In article <3f5f141a.17871878 (AT) News (DOT) CIS.DFN.DE>, Faser
(invalid (AT) faser (DOT) net) says...

Quote:
Allora gia' dovresti sapere tutto.

Si, nella teoria.
Per la pratica basta provare a buttar giu' due righe di "teoria".

Quote:
Potrebbe essere una buona soluzione. Mi consigli di lanciare le eccezioni
con le stesse proprietà di quelli lanciati da Mozilla? Se facessi in modo
diverso chi usa l'oggetto dovrebbe distinguere nel catch tipo:

if (e instanceof MyEx) bla
else è quella di Mozilla

Giusto?

Ma ad esempio, in un contesto simile ?:
te lo cutto perche' non ho la testa di seguire tutto l'iter, spero di
riuscire ugualmente a risponderti..

Quote:
Io però non vorrei scrivere il messaggio direttamente nel throw, ma passare
un codice d'errore che poi venga mappato con il messaggio d'errore nella
lingua prescelta, in modo tale che se chi usa l'oggetto lo rilancia
all'utente ad esempio con un alert(), il messaggio arrivi nella lingua
giusta.
Ti stai dimenticando dei setter e getter?
Ti basta avere un oggetto con un accessor "message" che non altro non
fa che restituirti la stringa localizzata partendo dal codice di errore
che gli setti nel tuo personale "object error".

In ogni caso, quindi, sia che si tratti di una tua eccezione o di
Mozilla, ti bastera' richiamare "message" sull'oggetto sollevato nel
blocco try.

--
C'ya,
ZER0 :: coder.gfxer.webDesigner();

"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)


Reply With Quote
  #4  
Old   
Faser
 
Posts: n/a

Default Re: throw e gestione degli errori - 09-10-2003 , 08:30 AM



On Wed, 10 Sep 2003 15:04:22 +0200, ZER0 <zer0.shock (AT) libero (DOT) it> wrote:


Quote:
Ti stai dimenticando dei setter e getter?
Ti basta avere un oggetto con un accessor "message" che non altro non
fa che restituirti la stringa localizzata partendo dal codice di errore
che gli setti nel tuo personale "object error".
Giusto, giusto mi sa che adesso quadra. Grazie a tutti e due per avermi
schiarito le idee.
Ciao.
ps: ma hai mai pensato di raccogliere in modo organico i tuoi post su
javascript. Sarebbero una miniera d'oro. Non scherzo!
Faser
--
FABIO SERRA
*Questo testo deve essere valutato secondo il senso della RFC-3*
Per rispondere in e-mail sostituire "invalid" con "faser"
--------------------


Reply With Quote
  #5  
Old   
ZER0
 
Posts: n/a

Default Re: throw e gestione degli errori - 09-10-2003 , 08:39 AM



In article <3f5f2669.22559538 (AT) News (DOT) CIS.DFN.DE>, Faser
(invalid (AT) faser (DOT) net) says...

[message accessor]
Quote:
Giusto, giusto mi sa che adesso quadra. Grazie a tutti e due per avermi
schiarito le idee.
De nada.
Ah, tra parentesi.. purtroppo ultimamente seguo ben poco XUL, l'ultima
cosa a cui mi sono dedicato e' XPCOM e cmq tendo a ricercare il
supporto Gecko-based; ma al momento sono abbastanza preso - come avevo
all'epoca accennato - con Java, in particolar modo J2ME. Mi spiace di
non poter essere piu' molto partecipe..

Quote:
Ciao.
ps: ma hai mai pensato di raccogliere in modo organico i tuoi post su
javascript. Sarebbero una miniera d'oro. Non scherzo!
Dici che dovrei scriverci un libro? 8)
Scherzi a parte che intendi? Cmq no.. non ci avevo mai pensato,
sinceramente.

--
C'ya,
ZER0 :: coder.gfxer.webDesigner();

"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)


Reply With Quote
  #6  
Old   
Faser
 
Posts: n/a

Default Re: throw e gestione degli errori - 09-10-2003 , 11:55 AM



On Wed, 10 Sep 2003 15:39:24 +0200, ZER0 <zer0.shock (AT) libero (DOT) it> wrote:

Quote:
Ciao.
ps: ma hai mai pensato di raccogliere in modo organico i tuoi post su
javascript. Sarebbero una miniera d'oro. Non scherzo!

Dici che dovrei scriverci un libro? 8)
E perchè no? Un bel libro di JS avanzato. Io lo comprerei :-)
Non c'è molto in giro soprattutto su js ad oggetti e magari anche fuori dal
browser. Che io sappia l'unico è questo ed è comunque datato:
http://www.amazon.com/exec/obidos/ASIN/1861001894/

Quote:
Scherzi a parte che intendi? Cmq no.. non ci avevo mai pensato,
sinceramente.
Intendo che spesso trovo tuoi post molto approfonditi e dettagliati, pieni
di ottimi consigli e finezze (ricordo quello dell'uso dell'oggetto {} al
posto dell'array "associativo" (che non è!! :-) quando non ci si deve
portare dietro tutta la roba, i getter e setter che mi hai spiegato etc
etc). Raccolti ed organizzati un pò secondo me produrrebbero un ottimo
tutorial o meglio un cookbook da leggere con piacere. E per te non sarebbe
neanche una faticaccia, devi solo ripescare tutto quello che hai già
scritto.
Ciao.
ps: non me ne vogliano gli altri che mi sono sfuggiti, non frequento
spessissimo il gruppo.


Faser
--
FABIO SERRA
*Questo testo deve essere valutato secondo il senso della RFC-3*
Per rispondere in e-mail sostituire "invalid" con "faser"
--------------------


Reply With Quote
  #7  
Old   
ZER0
 
Posts: n/a

Default Re: throw e gestione degli errori - 09-11-2003 , 04:10 AM



In article <3f5f5414.34249638 (AT) News (DOT) CIS.DFN.DE>, Faser
(invalid (AT) faser (DOT) net) says...

Quote:
ps: ma hai mai pensato di raccogliere in modo organico i tuoi post su
javascript. Sarebbero una miniera d'oro. Non scherzo!

Dici che dovrei scriverci un libro? 8)

E perchè no? Un bel libro di JS avanzato. Io lo comprerei :-)
Almeno so che una copia la venderei.. ^_^"

Quote:
Non c'è molto in giro soprattutto su js ad oggetti e magari anche fuori dal
browser. Che io sappia l'unico è questo ed è comunque datato:

http://www.amazon.com/exec/obidos/ASIN/1861001894/
L'hai trovato con MAB? 8)

Quote:
Intendo che spesso trovo tuoi post molto approfonditi e dettagliati, pieni
di ottimi consigli e finezze (ricordo quello dell'uso dell'oggetto {} al
posto dell'array "associativo" (che non è!! :-) quando non ci si deve
portare dietro tutta la roba, i getter e setter che mi hai spiegato etc
etc). Raccolti ed organizzati un pò secondo me produrrebbero un ottimo
tutorial o meglio un cookbook da leggere con piacere. E per te non sarebbe
neanche una faticaccia, devi solo ripescare tutto quello che hai già
scritto.
Lo sai che mi hai stuzzicato?
La faticaccia pero' sarebbe ripescare tutti i miei post e fare una
scrematura.. O_o" paura..

--
C'ya,
ZER0 :: coder.gfxer.webDesigner();

"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.