Sujet : Re: FileNotFoundError thrown due to file name in file, rather than file itself
De : cs (at) *nospam* cskk.id.au (Cameron Simpson)
Groupes : comp.lang.pythonDate : 11. Nov 2024, 22:17:46
Autres entêtes
Message-ID : <mailman.94.1731359879.4695.python-list@python.org>
References : 1 2
User-Agent : Mutt/2.2.13 (2024-03-09)
On 11Nov2024 18:24,
dieter.maurer@online.de <
dieter.maurer@online.de> wrote:
Loris Bennett wrote at 2024-11-11 15:05 +0100:
I have the following in my program:
try:
logging.config.fileConfig(args.config_file)
config = configparser.ConfigParser()
config.read(args.config_file)
if args.verbose:
print(f"Configuration file: {args.config_file}")
except FileNotFoundError:
print(f"Error: configuration file {args.config_file} not found. Exiting.")
>
Do not replace full error information (including a traceback)
with your own reduced error message.
If you omit your "try ... except FileNotFoundError`
(or start the `except` clause with a `raise`), you
will learn where in the code the exception has been raised
and likely as well what was not found (Python is quite good
with such error details).
Actually, file-not-found is pretty well defined - the except action itself is fine in that regard.
[...]
2. In terms of generating a helpful error message, how should one
distinguish between the config file not existing and the log file not
existing?
Generally you should put a try/except around the smallest possible piece of code. So:
config = configparser.ConfigParser()
try:
config.read(args.config_file)
except FileNotFoundError as e:
print(f"Error: configuration file {args.config_file} not found: {e}")
This way you know that the config file was missing.
Cheers,
Cameron Simpson <
cs@cskk.id.au>