Skip to content Skip to sidebar Skip to footer

How To Catch Pygetwindowexception When Using Pygetwindow In Python?

I have a script which uses pygetwindow module to do some operations on a specific window. While the script runs, I get the following exception: File 'C:\Program Files (x86)\Python3

Solution 1:

You should have import pygetwindow at the begging of your script. It complains about not knowing what pygetwindow is.

Solution 2:

Update

From the source file, it was clear that in order to use PyGetWindowException, you need to import the exception specifically (and not just import pygetwindow). Therefore, in order to catch the exception, one will have to do:

from pygetwindow importPyGetWindowException

After this import, you can use the exception in the normal way:

try:
  #implementationexcept PyGetWindowException:
  #handle exception

Update 2

Another general way to do this would be to get the exception name from general exception and compare.

try:
    try:
        #implementation
    except Exceptionas e:
        if e.__class__.__name__ == 'PyGetWindowException':
             #handle exceptionelse:
             raise e

except Exceptionas e:
    #handle other exceptions except pygetwindow exception

Original answer (not recommended)

Found a way to solve this question in this answer.

From the source of pygetwindow, it was clear that, whenever PyGetWindowException is raised, it is accompanied by the text:

"Error code from Windows:"

which indicates the error code given by Windows.

Based on this information, I did the following:

try:
    try:
        #Implementationexcept Exception as e:
        if"Error code from Windows"instr(e)
            # Handle pygetwindow exceptionelse:
            raise e
except Exception as e:
    #handle other exceptions

This is another way (although the first one and second one are the correct and straightforward solutions) to solve the problem.

Post a Comment for "How To Catch Pygetwindowexception When Using Pygetwindow In Python?"