Detect division by zero: Difference between revisions

m
m (→‎{{header|Perl 6}}: cleaned up)
Line 1,518:
 
=={{header|Perl 6}}==
====Try/Catch====
<lang perl6>sub div($a, $b) {
my $r;
try {
$r = $a / $b;
CATCH {
say "trieddefault to{ dividenote by zero !"Unexpected ifexception, $! ~~ _"Divide by zero";}
}
}
return $r // failNil;
}
say div(10,2); # 5
say div(1, sin(0));</lang>
{{out}}
<pre>5
Unexpected exception, Attempt to divide 1 by zero using /
Nil</pre>
 
===Using =Multi Method Dispatch====
say div(10,2); # 5
<lang perl6>multi div($a, $b) { return $a / $b }
say div(1,0); # Inf, 1/0 constants are substituted for Infinity
saymulti div(1$a, sin(0));$b #where undef,{ and$b prints== "tried0 }) { note 'Attempt to divide by zero".'; return Nil }
</lang>
 
say div(10, 2);
===Using Multi Method Dispatch===
say div(1, sin(0));</lang>
 
{{out}}
<lang perl6>multi div($a, $b){ return $a / $b }
<pre>5
multi div($a, $b where { $b == 0 }){
Attempt to divide by zero.
say 'lolicheatsyou';
Nil</pre>
return 1;
}
 
say div(1, sin(0)); # prints "lolicheatsyou" newline "1"
</lang>
 
=={{header|Phix}}==
2,392

edits