Schrift
[thread]8841[/thread]

Illegal division

Leser: 1


<< >> 5 Einträge, 1 Seite
Froschpopo
 2007-03-14 19:53
#75045 #75045
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Huhu!

Ich verursache einen kleinen Mathefehler:
Code: (dl )
1
2
perl -e 'print 23/0';
Illegal division by zero at -e line 1.

Kann ich die Message auch irgendwie möglichst ohne eval abfangen?
Dadurch wird jedesmal ein exit ausgelöst. Ich würde lieber ein kontrolliertes "die &programm_beenden()" machen.\n\n

<!--EDIT|Froschpopo|1173894831-->
GwenDragon
 2007-03-14 20:25
#75046 #75046
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Eine Division durch Null ist ein harter Fehler. Musst du halt den Nenner prüfen.
Außerdem denke ich, dass schon zur Compiletime geprüft wird udn deswegen die Medung kommt.
Bin mir nicht sicher, aber irgendein Signal fängt das wohlmöglich ab.
renee
 2007-03-14 20:30
#75047 #75047
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ja, wenn die 0 fest drin steht, ist es sogar schon ein Compile-Fehler...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2007-03-15 00:35
#75048 #75048
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
wieso denn bloss ohne eval? genau für sowas ist eval da.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
bloonix
 2007-03-15 10:40
#75049 #75049
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=Froschpopo,14.03.2007, 18:53]Kann ich die Message auch irgendwie möglichst ohne eval abfangen?
Dadurch wird jedesmal ein exit ausgelöst. Ich würde lieber ein kontrolliertes "die &programm_beenden()" machen.[/quote]

Du brauchst kein eval! Dein Skript soll ja auch nicht in einer
eval-Flut untergehen! Eine if-Anweisung sollte ausreichen.

Code: (dl )
1
2
3
4
5
6
7
8
my $x = 23;
my $y =  0;

print $y > 0 ? $x/$y : 0, "\n";

# oder

die "fehler ...." if $y == 0;
\n\n

<!--EDIT|opi|1173948212-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
<< >> 5 Einträge, 1 Seite



View all threads created 2007-03-14 19:53.