Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
000730ec
Commit
000730ec
authored
Aug 30, 2015
by
Damien George
Browse files
py/objstr: Simplify error handling for bad conversion specifier.
parent
c9fa6672
Changes
2
Hide whitespace changes
Inline
Side-by-side
py/objstr.c
View file @
000730ec
...
...
@@ -894,9 +894,17 @@ mp_obj_t mp_obj_str_format(mp_uint_t n_args, const mp_obj_t *args, mp_map_t *kwa
}
else
{
if
(
MICROPY_ERROR_REPORTING
==
MICROPY_ERROR_REPORTING_TERSE
)
{
terse_str_format_value_error
();
}
else
{
}
else
if
(
MICROPY_ERROR_REPORTING
==
MICROPY_ERROR_REPORTING_NORMAL
)
{
nlr_raise
(
mp_obj_new_exception_msg
(
&
mp_type_ValueError
,
"end of format while looking for conversion specifier"
));
"bad conversion specifier"
));
}
else
{
if
(
str
>=
top
)
{
nlr_raise
(
mp_obj_new_exception_msg
(
&
mp_type_ValueError
,
"end of format while looking for conversion specifier"
));
}
else
{
nlr_raise
(
mp_obj_new_exception_msg_varg
(
&
mp_type_ValueError
,
"unknown conversion specifier %c"
,
*
str
));
}
}
}
}
...
...
@@ -989,15 +997,9 @@ mp_obj_t mp_obj_str_format(mp_uint_t n_args, const mp_obj_t *args, mp_map_t *kwa
mp_print_kind_t
print_kind
;
if
(
conversion
==
's'
)
{
print_kind
=
PRINT_STR
;
}
else
if
(
conversion
==
'r'
)
{
print_kind
=
PRINT_REPR
;
}
else
{
if
(
MICROPY_ERROR_REPORTING
==
MICROPY_ERROR_REPORTING_TERSE
)
{
terse_str_format_value_error
();
}
else
{
nlr_raise
(
mp_obj_new_exception_msg_varg
(
&
mp_type_ValueError
,
"unknown conversion specifier %c"
,
conversion
));
}
assert
(
conversion
==
'r'
);
print_kind
=
PRINT_REPR
;
}
vstr_t
arg_vstr
;
mp_print_t
arg_print
;
...
...
tests/basics/string_format.py
View file @
000730ec
...
...
@@ -140,6 +140,13 @@ try:
except
ValueError
:
print
(
'ValueError'
)
# end of format parsing conversion specifier
try
:
'{!'
.
format
(
'a'
)
except
ValueError
:
print
(
'ValueError'
)
# unknown conversion specifier
try
:
'abc{!d}'
.
format
(
'1'
)
except
ValueError
:
...
...
@@ -150,6 +157,7 @@ try:
except
ValueError
:
print
(
'ValueError'
)
# expected ':' after specifier
try
:
'{!s :}'
.
format
(
2
)
except
ValueError
:
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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