maybe good to signal to carl | |
GerardJ | 2-Oct-2007/5:03:14+2:00 |
The folowwing code: if error? err: try[Write/lines join my-folder-path my-file my-data][...] generates an error as the return of try does not give any value (i.e. the operation is properly completed) Another small problem: if the condition bracket is: err: disarm err inform layout[ h1 "Central Backup has failed! h2 err/id button "ok" [hide-popup] ] does not give what is expected. one must write: h2 to-string err/id | |
Didec | 2-Oct-2007/9:16:16+2:00 |
Pour ton 1er problème, la solution est :if error? set/any 'err try [Write/lines join my-folder-path my-file my-data][...] Le 'set/any permet de gérer tous les cas de valeurs de retour, y compris le cas ou unset! est renvoyé (pas de valeur). Quand au 2ème pb, err/id n'est pas un string!, mais un word!. >> err: disarm try [1 / 0] >> probe err make object! [ code: 400 type: 'math id: 'zero-divide arg1: none arg2: none arg3: none near: [1 / 0] where: 'halt-view ] >> type? err/id == word! Donc il est normal que le dialecte VID ne l'utilise pas dans comme le texte du H2, puisque ce n'est pas un texte (et VID se base sur le datatype de chaque valeur pour l'interpréter. Tu peux utiliser 'to-string, mais le plus souvent on utilise 'form. err: disarm err inform layout[ h1 "Central Backup has failed! h2 form err/id button "ok" [hide-popup] ] | |
guest2 | 2-Oct-2007/19:46:32+2:00 |
La fonction attempt remplit ce rôle également.attempt: func [ {Tries to evaluate and returns result or NONE on error.} value ][ if not error? set/any 'value try :value [get/any 'value] ] | |
Login required to Post. |