i all the A langs
This commit is contained in:
parent
86c034bb8b
commit
9246b988c7
245 changed files with 3941 additions and 0 deletions
|
|
@ -0,0 +1,26 @@
|
|||
PROC raise exception= ([]STRING args)VOID: (
|
||||
put(stand error, ("Exception: ",args, newline));
|
||||
stop
|
||||
);
|
||||
|
||||
PROC raise zero division error := VOID:
|
||||
raise exception("integer division or modulo by zero");
|
||||
|
||||
PROC int div = (INT a,b)REAL: a/b;
|
||||
PROC int over = (INT a,b)INT: a%b;
|
||||
PROC int mod = (INT a,b)INT: a%*b;
|
||||
|
||||
BEGIN
|
||||
OP / = (INT a,b)REAL: ( b = 0 | raise zero division error; SKIP | int div (a,b) );
|
||||
OP % = (INT a,b)INT: ( b = 0 | raise zero division error; SKIP | int over(a,b) );
|
||||
OP %* = (INT a,b)INT: ( b = 0 | raise zero division error; SKIP | int mod (a,b) );
|
||||
|
||||
PROC a different handler = VOID: (
|
||||
put(stand error,("caught division by zero",new line));
|
||||
stop
|
||||
);
|
||||
|
||||
INT x:=1, y:=0;
|
||||
raise zero division error := a different handler;
|
||||
print(x/y)
|
||||
END
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
100 REM TRY
|
||||
110 ONERR GOTO 200
|
||||
120 D = - 44 / 0
|
||||
190 END
|
||||
200 REM CATCH
|
||||
210 E = PEEK (222) < > 133
|
||||
220 POKE 216,0: REM ONERR OFF
|
||||
230 IF E THEN RESUME
|
||||
240 CALL - 3288: REM RECOVER
|
||||
250 PRINT "DIVISION BY ZERO"
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
ZeroDiv(num1, num2) {
|
||||
If ((num1/num2) != "")
|
||||
MsgBox % num1/num2
|
||||
Else
|
||||
MsgBox, 48, Warning, The result is not valid (Divide By Zero).
|
||||
}
|
||||
ZeroDiv(0, 3) ; is ok
|
||||
ZeroDiv(3, 0) ; divize by zero alert
|
||||
Loading…
Add table
Add a link
Reference in a new issue