Uso el método de parse JSON5 para convertir el valor insertado en el elemento de entrada en un objeto
por ejemplo, insertar WWEew2" en el elemento de entrada e invocar el método provoca un error de sintaxis
quiero atrapar el error
SyntaxError: JSON5: invalid end of input at 1:1 at Cu (index.min.js:1) at ru (index.min.js:1) at Object.start (index.min.js:1) at Object.parse (index.min.js:1) at Vue.displayData (index.html:45) at invoker (vue.js:2029) at HTMLButtonElement.fn._withTask.fn._withTask (vue.js:1828) especialmente esta parte SyntaxError: JSON5: invalid end of input at 1:1
usando
const errorString = JSON5.stringify(e) devuelve {lineNumber:1,columnNumber:1}
¿Cómo puedo detectar el error completo y almacenarlo como una cadena en una variable?
desafortunadamente, el error no se muestra completamente en el ejemplo del fragmento de código, solo si lo ejecuta en el navegador
new Vue({ el: "#app", data() { return { myInput: "", }; }, methods: { displayData() { try { console.log(JSON5.parse(this.myInput)) } catch (e) { console.log(e) const errorString = JSON5.stringify(e) console.log(errorString) // {lineNumber:1,columnNumber:1} } }, }, }); <script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> <button type="button" @click="displayData">display</button> <input v-model="this.myInput" > </div>