??? 09/27/05 08:00 Modified: 09/27/05 08:09 Read: times |
#101598 - the borderline Responding to: ???'s previous message |
Oliver Sedlacek said:
I think that the important bit is that the expected flow is what the function promises to do, so a function called char getCharFromBuf() promises to return a char. The only permissible reason for breaking the promise is an exception which makes it impossible to fulfil. Well there is a very narrow borderline in defining "exception" - in this case, you might as well call an "unexpectedly early" CR an "exception" which would justify the "jump", when the called routine could not return the "promised" "non-CR" character... So that's all about conventions only, and common experience shows that it is better to keep this kind of stuff to minimum - maybe with the exception that in case of "critical error" a jumpout/shortcut is correct or acceptable... I think the main difference is in the tools - while in C or some HLL the try...catch construction gets automatically translated into a quite complicated set of instructions, which updates automatically (with each rebuild) as the work progresses; in asm it is all about discipline. Again, common experience shows that in asm it is better to avoid constructions requiring discipline as much as possible. Jan Waclawek |
Topic | Author | Date |
RET to a different address | 01/01/70 00:00 | |
here is how pseudocode | 01/01/70 00:00 | |
RET to a different address | 01/01/70 00:00 | |
no flaw, but 1.000.000 gotchas | 01/01/70 00:00 | |
That's what I wanted to know | 01/01/70 00:00 | |
Yes | 01/01/70 00:00 | |
"clever" | 01/01/70 00:00 | |
OT: my wife | 01/01/70 00:00 | |
no flaw, but seriously not recommended | 01/01/70 00:00 | |
experience | 01/01/70 00:00 | |
reload SP | 01/01/70 00:00 | |
restoring stack | 01/01/70 00:00 | |
Recognisable string![]() | 01/01/70 00:00 | |
named return value | 01/01/70 00:00 | |
Bad Practice | 01/01/70 00:00 | |
Well phrased | 01/01/70 00:00 | |
What I am doing with it | 01/01/70 00:00 | |
try...catch | 01/01/70 00:00 | |
setjmp / longjmp | 01/01/70 00:00 | |
when to try ... catch | 01/01/70 00:00 | |
the borderline | 01/01/70 00:00 | |
Promises | 01/01/70 00:00 | |
who cares if an exceptiom is "acceptable | 01/01/70 00:00 | |
Parsing input data | 01/01/70 00:00 |