short answer to your question - if you want to use a module like this (in this case sys) you need to import it in both modules.
Now, the design of you class is another matter. You handle the exception within the class, print some message that include the caller script, class, method and exit with sys.exit(). Many would compare with you slamming the door behind you. Note that all of this info is either known to the caller (i.e. the user of the class or is available in the traceback). So in fact you just print shorter version of the script, possibly omitting some intermediate steps/info that may be helpful to debug.
compare
As a side note, you may want to use more pythonic way to create strings like f-strings or str.format() method, not the old style using % or concatenation.
Now, the design of you class is another matter. You handle the exception within the class, print some message that include the caller script, class, method and exit with sys.exit(). Many would compare with you slamming the door behind you. Note that all of this info is either known to the caller (i.e. the user of the class or is available in the traceback). So in fact you just print shorter version of the script, possibly omitting some intermediate steps/info that may be helpful to debug.
compare
Output:bar.py->xmlFile::sendXML(): File spam1.xml does not exists!
withError:Traceback (most recent call last):
File "bar.py", line 10, in <module>
dataList = xmlFl.sendXML(sys.argv[1])
File "foo.py", line 8, in sendXML
open(xmlFile)
FileNotFoundError: [Errno 2] No such file or directory: 'spam1.xml'
for example in your message it's not clear on which line exactly the error occur. What if it is some more complex method/function? yes, you can make your msg more specific. My point is that more proper way to do it is to leave the exception propagate to the caller. Then the caller should/would if they want handle it graciously and either continue or exit in some way. Imagine the caller need to do some cleaning like revert INSERT/UPDATE DB operation.As a side note, you may want to use more pythonic way to create strings like f-strings or str.format() method, not the old style using % or concatenation.
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs