Comments (3)
It'd be useful for libraries to adopt a standard error format. Typically when I'm writing my apps, I'll have a central location setup to handle exceptions and they could come from any number of external libraries. It'd be nice to have a way to identify the library the exception came from, and then a code to indicate the error. Having to rely on hard coded error strings like "GeoFire: Remove key failed" are prone to mistakes since those strings often change or can get fat fingered on my end.
If instead you threw an object that looked something like:
{
lib: "GeoFire",
code: 1000,
msg: "Remove key failed"
stack: {..stack trace...},
data: { some: 'relevant', data: 'here', when: 'applicable' }
}
An object like that along with publishing a set of error codes with the documentation, would make it slightly easier to parse and less prone to error (for example, if I bower update and don't notice that you started adding "GeoFire: " to the beginning of your errors).
// Internal library function for throwing errors
function logError(code, message, data) {
var err = new Error();
throw {
lib: "GeoFire",
code: code || -1,
msg: message,
data: data,
stack: err.stack
};
}
// example failure on removing
logError(1000, 'Remove key failed', {key: 'abcdefg'});
Now I could listen for that error somewhere in my app and either respond somehow, or at least log it to some service of mine (a la Sentry) with useful contextual data.
from geofire-js.
Hey @mikepugh - sorry, I thought I had responded to this. Thanks for the suggestion! I'm going to bring this up with the whole team and see if we can come up with a common error format for all of our libraries. I'll keep you posted.
from geofire-js.
I don't think I ever really got buy-in from the rest of the team on doing this across all of our repos, so I'm closing this. Maybe we will revisit it someday...
from geofire-js.
Related Issues (20)
- Can't instantiate Geofire ref in TS HOT 6
- Can't instantiate GeoFire in TS
- Query base on GeoJsonLayer polygon HOT 3
- Query does not return locations inside of greater locations HOT 1
- MarkerOptions.anchor doesn't affect on position HOT 1
- when run geofire got erroe( s._firebaseRef.orderByChild is not a function) HOT 1
- Potential Security Issue HOT 2
- Large radius query returns different results for small amounts either side of the meridian HOT 1
- how to use geofire in firebase admin sdk instead of firebase javascript sdk HOT 2
- Firebase version 9 HOT 17
- What to do when my project using Firebase version 9 but i need to use geofire HOT 1
- Geofire
- How to get a query response without any event on GeoFire?
- MIT License file missing HOT 1
- Missing `once` or `get` and determination when search finished HOT 4
- Bug in the geoFire library HOT 2
- 't.split' error and 'Unknown node type' at firebase HOT 3
- Geofire querying data totally out of range for radius zero
- Bug: Setting Geofire Key (childPathObj.split is not a function)
- Maximum call stack size exceeded error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from geofire-js.