Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
300c8bd4
Commit
300c8bd4
authored
Mar 20, 2014
by
Rachel Dowdall
Browse files
Added ZeroDivisionError to float division.
parent
a2f2f734
Changes
5
Hide whitespace changes
Inline
Side-by-side
py/obj.h
View file @
300c8bd4
...
...
@@ -201,6 +201,7 @@ extern const mp_obj_type_t mp_type_OverflowError;
extern
const
mp_obj_type_t
mp_type_OSError
;
extern
const
mp_obj_type_t
mp_type_NotImplementedError
;
extern
const
mp_obj_type_t
mp_type_StopIteration
;
extern
const
mp_obj_type_t
mp_type_ZeroDivisionError
;
// Constant objects, globally accessible
...
...
py/objexcept.c
View file @
300c8bd4
...
...
@@ -93,6 +93,7 @@ MP_DEFINE_EXCEPTION(OverflowError, BaseException)
MP_DEFINE_EXCEPTION
(
OSError
,
BaseException
)
MP_DEFINE_EXCEPTION
(
NotImplementedError
,
BaseException
)
MP_DEFINE_EXCEPTION
(
StopIteration
,
BaseException
)
MP_DEFINE_EXCEPTION
(
ZeroDivisionError
,
BaseException
)
mp_obj_t
mp_obj_new_exception
(
const
mp_obj_type_t
*
exc_type
)
{
return
mp_obj_new_exception_msg_varg
(
exc_type
,
NULL
);
...
...
py/objfloat.c
View file @
300c8bd4
#include
<stdlib.h>
#include
<assert.h>
#include
<math.h>
#include
"nlr.h"
#include
"misc.h"
...
...
@@ -105,8 +106,12 @@ mp_obj_t mp_obj_float_binary_op(int op, mp_float_t lhs_val, mp_obj_t rhs_in) {
case RT_BINARY_OP_INPLACE_FLOOR_DIVIDE: val = lhs_val / rhs_val; break;
*/
case
RT_BINARY_OP_TRUE_DIVIDE
:
case
RT_BINARY_OP_INPLACE_TRUE_DIVIDE
:
lhs_val
/=
rhs_val
;
break
;
case
RT_BINARY_OP_INPLACE_TRUE_DIVIDE
:
lhs_val
/=
rhs_val
;
if
(
isinf
(
lhs_val
)){
// check for division by zero
nlr_jump
(
mp_obj_new_exception_msg
(
&
mp_type_ZeroDivisionError
,
"float division by zero"
));
}
break
;
case
RT_BINARY_OP_LESS
:
return
MP_BOOL
(
lhs_val
<
rhs_val
);
case
RT_BINARY_OP_MORE
:
return
MP_BOOL
(
lhs_val
>
rhs_val
);
case
RT_BINARY_OP_LESS_EQUAL
:
return
MP_BOOL
(
lhs_val
<=
rhs_val
);
...
...
py/qstrdefs.h
View file @
300c8bd4
...
...
@@ -47,6 +47,7 @@ Q(SyntaxError)
Q
(
TypeError
)
Q
(
ValueError
)
Q
(
OverflowError
)
Q
(
ZeroDivisionError
)
Q
(
NoneType
)
...
...
py/runtime.c
View file @
300c8bd4
...
...
@@ -158,6 +158,7 @@ STATIC const mp_builtin_elem_t builtin_table[] = {
{
MP_QSTR_OSError
,
(
mp_obj_t
)
&
mp_type_OSError
},
{
MP_QSTR_NotImplementedError
,
(
mp_obj_t
)
&
mp_type_NotImplementedError
},
{
MP_QSTR_StopIteration
,
(
mp_obj_t
)
&
mp_type_StopIteration
},
{
MP_QSTR_ZeroDivisionError
,
(
mp_obj_t
)
&
mp_type_ZeroDivisionError
},
// Extra builtins as defined by a port
MICROPY_EXTRA_BUILTINS
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment