rebol []
secretAgent: do func[ /local person firstName lastName][
firstName: "James"
lastName: "Bond"
person: make object! [
whoAreYou: func[][
print rejoin ["My name is " lastName ", " firstName " " lastName]
]
]
]
secretAgent/whoAreYou
if (error? (error: try [secretAgent/firstName])) [
probe disarm error
]
input
kehrenWarum Unscharf Fehler gibt Fehler Objekt in Rebol nicht?
My name is Bond, James Bond
** Script Error: Invalid path value: firstName
** Near: secretAgent/firstName
während ich gleiches Ergebnis erwarten wie für
probe disarm try [secretAgent/firstName]
input
, die zurückgibt:
My name is Bond, James Bond
make object! [
code: 311
type: 'script
id: 'invalid-path
arg1: 'firstName
arg2: none
arg3: none
near: [secretAgent/firstName]
where: none
]
danke, aber das ist seltsam Verhalten als() sollte "neutral" sein. –
Ja die() sollte keinen Unterschied machen. Aber REBOL2 ist nur ein wenig zu empfindlich. REBOL3 macht es richtig: das Extra() macht keinen Unterschied. – Sunanda
() verursachen eine Auswertung, wenn sie innerhalb eines Ausdrucks verwendet werden. deshalb wird der Fehler ausgelöst, da der Fehler nicht unscharf wurde. – moliad