Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please implement Exceptions for better Error handling #63

Open
henryruhs opened this issue Nov 24, 2019 · 1 comment
Open

Please implement Exceptions for better Error handling #63

henryruhs opened this issue Nov 24, 2019 · 1 comment

Comments

@henryruhs
Copy link

henryruhs commented Nov 24, 2019

Hello,

it would be nice to have some exceptions to be thrown:

  1. Connection failed while using blinkstick.connect() should throw BlinkStickConnectionException

Hacky solution that includes general OSError to catch pointless find_all() call:

	api = None

	try:
		from blinkstick import blinkstick

		try:
			api = blinkstick
			api.find_all()
		except OSError:
			exit(wording.get('connection_no').format('AGILE INNOVATIVE BLINKSTICK') + wording.get('exclamation_mark'))
		return api
	except ImportError:
		exit(wording.get('package_no').format('BLINKSTICK') + wording.get('exclamation_mark'))

Wanted solution that throws BlinkStickConnectionException:

def api_factory():
	api = None

	try:
		from blinkstick.blinkstick import BlinkStickConnectionException

		try:
			api = blinkstick
			blinkstick.connect()
		except BlinkStickConnectionException:
			exit(wording.get('connection_no').format('AGILE INNOVATIVE BLINKSTICK') + wording.get('exclamation_mark'))
		return api
	except ImportError:
		exit(wording.get('package_no').format('BLINKSTICK') + wording.get('exclamation_mark'))

Connect method could look similar to this:

def connect(vendor_id : str, product_id : str) -> None:
	try:
		hidraw = hid.device(vendor_id, product_id)
		hidraw.open(vendor_id, product_id)
		hidraw.close()
	except OSError:
		raise BlinkStickConnectionException
@rakshak-t
Copy link

I second this. The exceptions being thrown are utterly unhelpful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants