⊗jsSpExcJSE 149 of 294 menu

Παράδειγμα Εξαίρεσης με JSON σε JavaScript

Ας υποθέσουμε ότι από κάπου από τον εξωτερικό κόσμο μας έρχεται ένα JSON με ένα προϊόν:

let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount);

Γνωρίζετε ήδη ότι η μέθοδος JSON.parse θα ρίξει μια εξαίρεση, εάν το JSON είναι εσφαλμένο. Ας πιάσουμε αυτήν την εξαίρεση:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // αντιδράμε με κάποιο τρόπο στην εξαίρεση }

Ωστόσο, μπορεί να συμβεί ότι το ίδιο το JSON είναι σωστό, αλλά δεν περιέχει τα απαιτούμενα πεδία για εμάς, για παράδειγμα, δεν υπάρχει πεδίο για την τιμή:

let json = '{"product": "apple", "amount": 5}'; // δεν υπάρχει τιμή

Ας πούμε ότι αυτή είναι επίσης μια εξαιρετική κατάσταση και σε τέτοια περίπτωση θα ρίχνουμε μια δική μας προσαρμοσμένη εξαίρεση:

try { let json = '{"product": "apple", "amount": 5}'; let product = JSON.parse(json); if (product.price !== undefined && product.amount !== undefined) { alert(product.price * product.amount); } else { throw { name: 'ProductCostError', message: 'απουσιάζει η τιμή ή η ποσότητα του προϊόντος' }; } } catch (error) { // αντιδράμε με κάποιο τρόπο στην εξαίρεση }

Τώρα το block catch θα λαμβάνει δύο τύπους εξαιρέσεων: είτε το JSON είναι εντελώς εσφαλμένο, και τότε θα υπάρχει εξαίρεση τύπου SyntaxError, είτε το JSON είναι σωστό, αλλά δεν περιέχει τα απαιτούμενα για εμάς πεδία, και τότε θα υπάρχει εξαίρεση τύπου ProductCostError.

Ας πιάσουμε αυτούς τους τύπους εξαιρέσεων στο block catch:

try { let json = '{"product": "apple", "amount": 5}'; let product = JSON.parse(json); if (product.price !== undefined && product.amount !== undefined) { alert(product.price * product.amount); } else { throw { name: 'ProductCostError', message: 'απουσιάζει η τιμή ή η ποσότητα του προϊόντος' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('Εσφαλμένο JSON προϊόντος'); } else if (error.name == 'ProductCostError') { alert('Από το προϊόν απουσιάζει η τιμή ή η ποσότητα'); } }

Ας υποθέσουμε ότι σας έρχεται ένα JSON της ακόλουθης μορφής:

let json = `[ { "name": "user1", "age": 25, "salary": 1000 }, { "name": "user2", "age": 26, "salary": 2000 }, { "name": "user3", "age": 27, "salary": 3000 } ]`;

Ελέγξτε αυτό το JSON για γενική ορθότητα κατά την ανάλυση, και μετά την ανάλυση ελέγξτε ότι στο αποτέλεσμα προκύπτει ένας πίνακας, και όχι κάτι άλλο. Εάν στο αποτέλεσμα προκύπτει κάτι άλλο από πίνακα - ρίξτε μια εξαίρεση.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη