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

Proper error handling #11

Open
ekuiter opened this issue Sep 18, 2018 · 3 comments
Open

Proper error handling #11

ekuiter opened this issue Sep 18, 2018 · 3 comments
Labels
client enhancement New feature or request server
Milestone

Comments

@ekuiter
Copy link
Owner

ekuiter commented Sep 18, 2018

The editor does not do much error handling right now. In particular, these issues have to be addressed:

  • errors returned by the server (thrown exceptions) are not shown in the UI at all. Global errors (toast or dialog) should be shown as well as local errors (attached to particular UI elements, see WebSocket request/response model #9)
  • right now, exceptions on the server are essentially RuntimeExceptions attached with a somewhat helpful English string. Instead, we should have a proper exception hierarchy attached with metadata so that the client can parse and handle the errors individually. Also error codes should be sent instead of messages (see Internationalization #10)
  • WebSocket issues are not handled at all (only relevant in multi-user mode, not on localhost). We need to handle cases such as
    • losing a network connection
    • changing networks (e.g., Wi-Fi to GSM)
    • the server crashes
    • automatically reconnect when the connection is lost, or offer the user an option to reconnect easily
    • when reconnecting, "repair" the application state (introduce the concept of "reconnecting" to the server)
@ekuiter ekuiter added enhancement New feature or request client server labels Sep 18, 2018
@ekuiter
Copy link
Owner Author

ekuiter commented Nov 19, 2018

Regarding WebSockets: With Sockette, we can reconnect on a closed connection. But rn, we don't distinguish between a new WebSocket and a reconnecting one, and the reconnecting client is assigned a new user name etc.

@ekuiter
Copy link
Owner Author

ekuiter commented Nov 19, 2018

Improved in 0402bff.

@ekuiter
Copy link
Owner Author

ekuiter commented Feb 20, 2019

WebSockets improved since adding the Clojure kernel, but still no sanity checks for generated operations (such as cycle check on move).

@ekuiter ekuiter added this to the Long-term milestone Feb 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client enhancement New feature or request server
Projects
None yet
Development

No branches or pull requests

1 participant