TriesCatch is a little tool that aims to improve JavaScript's native Try/Catch feature.
catch
catches every errors in the try block, even the unexpected ones.- You can't pass data from within the trycatch to the outside if you don't declare the variable before.
- The parameter of the
catch
block serves as a filter - You can chain
catch
blocks to handle mutltiple errors from the sametry
block - You can pass data from inside to the outside of the try/catch
- You're not obliged to catch right away.
Only catch the error you're looking for
let post;
tries(() => {
post = fetch("localhost:3000/posts");
// First parameter is the error you want to catch
}).catch(TypeError, (error) => {
console.log("Error happened, contact administrator", error);
})
Pass data from within to the outside
let post = tries((data) => {
data.req = fetch("localhost:3000/posts");
// First parameter is the error you want to catch
}).catch(TypeError, (error) => {
console.log("Error happened, contact administrator", error);
})
console.log(post.data.req)
Catch later (idk why you would do that)
let post = tries((data) => {
data.req = fetch("localhost:3000/posts");
})
//do whatever you want
alert("idk why you would do that")
post.catch(TypeError, (error) => {
console.log("Error happened, contact administrator", error);
})
console.log(post.data.req)
Install the npm package:
npm install triescatch
I always thought that TypeScript could allow you to type your error in a catch block, in order to catch only a specific type of error. But it's not the case, you can type an error in the parameters of a catch block, but there are only two available types: undefined and error. So TypeScript does not help you with that, I don't know why I thought it would.
I was tired of doing this everytime:
let post;
try {
post = fetch("some dummy fetch")
} catch(e) {
if (e instance of YOUR_ERROR) {
//do some stuff
}
}
So I made my own. The "catch later" thing is kind of a gimmick. But I feel like catching multiple specific errors is great, that way I can handle a specific action differently depending on the error returned. It's more convenient than embedding try/catches within try/catches.
And I like that I can put my try catch in a variable, in order to access its content from outside. I wish we could do that in native javascript.
The tries
function is not using TypeScript as of now, I'm too junior to figure out how to do that with TypeScript. It will take time, and I don't know if this project has enough value to be used, but I'll keep working on this. If you have any suggestions or contributions, well, my door is wide open.
Now it's made with typescript. I'm still too junior for that, but yeah. It works now.