Day16 Exceptions - String to Integer

Day16 Exceptions - String to Integer

Objective

Today, we’re getting started with Exceptions by learning how to parse an integer from a string and print a custom error message. Check out the Tutorial tab for learning materials and an instructional video!


Task

Read a string, S, and print its integer value; if S cannot be converted to an integer, print Bad String.

Note: You must use the String-to-Integer and exception handling constructs built into your submission language. If you attempt to use loops/conditional statements, you will get a 0 score.


Input Format

A single string, S.


Constraints

  • 1 <= |S| <= 6, where |S| is the length of string S.
  • S is composed of either lowercase letters (a - z) or decimal digits (0 - 9).

Output Format

Print the parsed integer value of S, or Bad String if S cannot be converted to an integer.


Sample Input 0

1
3

Sample Output 0

1
3

Sample Input 1

1
za

Sample Output 1

1
Bad String

Explanation

Sample Case 0 contains an integer, so it should not raise an exception when we attempt to convert it to an integer. Thus, we print the 3.

Sample Case 1 does not contain any integers, so an attempt to convert it to an integer will raise an exception. Thus, our exception handler prints Bad String.




Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/*
* You can use the following pseudocode:
*
* `S` = read string from stdin.
* try {
* `N` = numeric value of `S`.
*
* If `N` is `NaN` or `undefined`, then some exception must be thrown,
* you can write the following withtout using conditional statement:
* <condition to return true when `N` is `NaN` or `undefined`> && an_undefined_function_call()
*
* print `N`
* } catch (err) {
* print `Bad String`.
* }
*/

function main() {
const S = readLine();

try {
console.log(parseInt(S).toString().replace('NaN', 'Bad String'));
} catch (e) {
console.log("Bad String");
}
}

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×