在类方法中引发异常

2024-03-28 15:02:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类,检查文件是否存在,如果文件存在,则创建一个文件对象 如果文件不存在或存在权限问题,else将捕获异常

    import os
    import sys
    import pandas
    import yaml

    class FileChange():

         def __init__(self, file_name='manifile.yml'):
            ''' to create a factfile object '''
            self.file_name = file_name
            self.checkfile()


        def checkfile(self):
            '''to check if the factfile exists or not '''
            try:
                with open(self.file_name, 'r') as yml_file:
                        self.yml_dict = yaml.safe_load(yml_file)
            except (IOError,FileNotFoundError):
                print('Unable to open file or File does not exist')


if __name__ == "__main__":
    if len(sys.argv) == 1:
        print("Run the script with the YML fact file name you would like to edit")
    elif len(sys.argv) > 1:
        FILE_NAME = sys.argv[1]
        print(FILE_NAME)
        F = FileChange(FILE_NAME)  

我想使用这个类创建一个类对象,如果文件不存在,则捕获/处理对象中抛出的异常

我有两种使用方法。
1.通过创建一个对象 从文件更改导入* F=FileChange('dummyfile.yml'),其中dummyfile不存在,因此它应该向我显示消息并退出

  1. 我还以py脚本实用程序(cmd>;filechange.py dummyfile.yml)并将文件名作为参数传递。即使这样,我给出的文件名也是错误的。它应该给我一个例外和退出。将添加此文件的主代码

Tags: 文件theto对象nameimportselfif
1条回答
网友
1楼 · 发布于 2024-03-28 15:02:56

如果我正确理解了您的问题,您希望添加一个受控的自定义异常。 如果这是正确的,那么此代码将适用于您

代码:

class IncorrectFile(Exception):
    pass

然后用不正确的文件调用它

如果不是定制的,则只需提高(选择错误)

相关问题 更多 >