Avoid trying to throw multiple exceptions at once.
The typical usage pattern for the get_char helper function is: bool thrown = false; n = get_char(env, s, 0, 1000, &thrown); n += get_char(env, s, 1, 100, &thrown); n += get_char(env, s, 2, 10, &thrown); n += get_char(env, s, 3, 1, &thrown); if (thrown) return false; As you can see, get_char is called multiple times before the thrown flag is checked. If the input text contains multiple incorrect characters, then we have to guard against throwing the same exception multiple times. (Because doing so will cause the Dalvik runtime to abort.) The fix is simple: modify get_char to check if an exception has already been thrown before throwing a new exception.
Loading
Please register or sign in to comment