Giter Club home page Giter Club logo

Comments (8)

dbrgn avatar dbrgn commented on August 16, 2024

Yes, but they should be caught and handled for all possible cases where something could go wrong. As long as Orochi is still in alpha, I think exceptions do a better job of forcing the developer to handle the issue :)

https://twitter.com/pydanny/status/352160435472048128

from orochi.

quigybo avatar quigybo commented on August 16, 2024

Agreed, this issue is meant more as a milestone before orochi can move out of
alpha.

from orochi.

dbrgn avatar dbrgn commented on August 16, 2024

I haven't experienced any fatal errors during the last few times I used orochi. @quigybo, do you know of any cases where we need to catch errors / exceptions?

from orochi.

quigybo avatar quigybo commented on August 16, 2024

Yes, I still see many exceptions in regular usage. I am currently working on
catching or fixing them, but am not finished yet.

Errors can of course occur any time network connectivity is required, but the
main places I experience them is in either reporting or loading the next song as
these actions are performed the most often.

The general idea is to retry failed network queries an adjustable number of
times, hoping that the error was temporary/once off. If this still fails, then
just print an error to the user and let them manually retry once the network
issue is resolved.

from orochi.

dbrgn avatar dbrgn commented on August 16, 2024

Maybe my internet connection is too stable :)

Hm, I think if we put the retry logic in the api calling code itself, that would make the code messy. Maybe wrapping it in a function and using a retry decorator with backoff would help? Are you already working on this issue? In that case I won't make any attempts to implement that atm.

from orochi.

dbrgn avatar dbrgn commented on August 16, 2024

You're right. Just had a HTTP500:

Song has ended!
Traceback (most recent call last):
  File "/usr/bin/orochi", line 9, in <module>
    load_entry_point('orochi==0.0.1', 'console_scripts', 'orochi')()
  File "/home/danilo/Projects/orochi/orochi/client.py", line 431, in main

  File "/home/danilo/Projects/orochi/orochi/client.py", line 144, in cmdloop
    super(Client, self).cmdloop()
  File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop
    stop = self.onecmd(line)
  File "/usr/lib/python2.7/cmd.py", line 221, in onecmd
    return func(arg)
  File "/home/danilo/Projects/orochi/orochi/client.py", line 221, in do_play
    i.cmdloop()
  File "/home/danilo/Projects/orochi/orochi/client.py", line 259, in cmdloop
    super(PlayCommand, self).cmdloop()
  File "/usr/lib/python2.7/cmd.py", line 130, in cmdloop
    line = raw_input(self.prompt)
  File "/home/danilo/Projects/orochi/orochi/client.py", line 278, in _song_end_handler
    self.status = self.api.next_track(self.mix_id)
  File "/home/danilo/Projects/orochi/orochi/api.py", line 195, in next_track
    return self._playback_control(mix_id, 'next')
  File "/home/danilo/Projects/orochi/orochi/api.py", line 165, in _playback_control
    'mix_id': mix_id,
  File "/home/danilo/Projects/orochi/orochi/api.py", line 60, in _get
    raise e
requests.exceptions.HTTPError: ('500 Server Error: Internal Server Error', {u'status': u'500 Internal Server Error', u'errors': u"Oops! Something went wrong. We're working on it."})
Exception TypeError: TypeError('signal handler must be signal.SIG_IGN, signal.SIG_DFL, or a callable object',) in <bound method MPlayer.__del__ of <orochi.player.MPlayer object at 0x133add0>> ignored

from orochi.

dbrgn avatar dbrgn commented on August 16, 2024

Does anyone still experience fatal errors?

from orochi.

dbrgn avatar dbrgn commented on August 16, 2024

I'll close this for now, I never experienced any crashes in the last weeks.

from orochi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.