python基础知识,为什么异常处理不起作用?

etl*_*evs 5 python pycharm python-3.x

我是python开发的新手,并试图理解异常处理.我有2个函数1st在列表中找到1个重复值,第2个调用该函数.但是如果尝试传递不存在的列表名称,则应该从块除外打印消息,但是它不起作用,请帮忙

def first_duplicate(a):
    x = 0
    for i, j in enumerate(a):
        for k in a[i + 1:]:
            if j == k:
               x = 1
                return j
        if x == 1:
            break


def call_main (list_name):
    try:
        x = first_duplicate(list_name)
        if x is None:
            print("No duplicates")
        else:
            print(x, "is the first duplicate")
    except NameError:
            print("exception occurred Name ")
    except ValueError:
            print("exception occurred value")
Run Code Online (Sandbox Code Playgroud)

我的命令就像

call_main(y)
Run Code Online (Sandbox Code Playgroud)

我没有创建列表:y,它应该在这种情况下打印异常消息,但不是,请帮助