In case that you are using an if statement inside a try, you are going to need more than one sys.exit() to actually exit the program.
For example, you are parsing an argument when calling the execution of some file, e.g. $./do_instructions.py 821 such as:
import sys
# index number 1 is used to pass a set of instructions to parse
# allowed values are integer numbers from 1 to 4, maximum number of instructions is 3
arg_vector = "821" # <- pretending to be an example of sys.argv[1]
if len(arg_vector) > 3:
    sys.exit(2) # <- this will take you out, but the following needs an extra step.
# for an invalid input (8). 
for i in arg_vector:
    # to validate that only numbers are passed as args.
    try:
        int(i) # <- 8 is valid so far
        
        # value (8) is not  valid, since is greater than 4
        if (int(i) == 0) or (int(i) > 4): 
            print("Values must be 1-4")
            # the following call does not takes you out from the program,
            # but rise the SystemExit exception.
            sys.exit(2) 
            
    except SystemExit: # <- needed to catch the previous as the first evaluation
        # The following parameter "2" is just for this example
        sys.exit(2) # <- needed to actually interrupt the execution of the program/script. 
    # if there is no "except SystemExit:", the following will be executed when the 
    # previous "if" statement evaluates to True and the sys.exit(2) is called.
    #
    # and the "print("Only num...") function will be called, even when the intention 
    # of it is to advice the *user* to use only numbers, since 8 is a number this
    # shouldn't be executed.
    except:
        print("Only numbers are allowed.")
        sys.exit(2)
otherwise, you want to use one try-except block for each evaluation.