Artikel ini akan memperkenalkan anda kepada pernyataan try catch dalam Javascript dan memperkenalkan dua fungsi pernyataan try catch saya harap ia akan membantu anda!
Program ini dilaksanakan secara berurutan dari atas ke bawah Pada masa yang sama, laluan pelaksanaan boleh diubah melalui beberapa pernyataan kawalan, yang terakhir laluan pelaksanaan program adalah aliran kawalan.
Pernyataan kawalan dalam js termasuk jika, untuk, sementara, cuba tangkap, dsb. Semuanya akan mengubah arah program.
Program beroperasi pada data Data yang berubah semasa program berjalan, iaitu, semasa aliran kawalan maju, dipanggil aliran data.
Jelas sekali, aliran data bergantung kepada aliran kawalan Analisis aliran data dalam analisis program juga memerlukan analisis aliran kawalan terlebih dahulu.
Contohnya, sekeping kod ini:
const a = 1; let b; if (a === 1) { b = '1111'; } else { b = '2222'; }
Oleh kerana a ialah 1, ia akan dilaksanakan kepada b = '1111';
Ini ialah aliran kawalan, iaitu kod yang akhirnya dilaksanakan oleh program, yang boleh digunakan untuk analisis Mengenai arah program, beberapa pengoptimuman seperti memadam kod mati perlu dilakukan.
Apabila aliran kawalan dilaksanakan, b akan diberikan nilai 2222. Ini ialah aliran data, iaitu proses menukar nilai, yang boleh digunakan untuk menganalisis nilai pembolehubah bagi pernyataan tertentu.
Atur cara melakukan pemprosesan yang berbeza untuk data yang berbeza Jika data mempunyai ralat, atur cara pemprosesan tidak akan dapat memprosesnya dan ralat akan dilaporkan, yang akan mengganggu aliran kawalan seterusnya. Contohnya, data kosong, format data tidak betul, dsb. Pada masa ini, pengendalian ralat mesti dilakukan melalui tangkapan cuba, juga dipanggil pengendalian pengecualian.
Kami melakukan pengendalian pengecualian untuk dua tujuan:
Untuk mengendalikan logik yang salah.
Sebagai contoh, apabila terdapat ralat dalam penghuraian parameter, tetapkan nilai lalai dalam tangkapan. Selepas ralat ini dikendalikan, tidak perlu melaporkannya lagi. Dalam kes ini, cuba tangkap juga merupakan sebahagian daripada logik, bersamaan dengan if else.
Berikan penerangan yang lebih berasaskan senario tentang ralat yang dilaporkan.
Ralat JS dilemparkan oleh enjin JS Contohnya, memanggil kaedah pada objek nol akan melaporkan TypeError, dan menggunakan pembolehubah tidak diisytiharkan akan melaporkan ReferenceError. Ralat khusus dilaporkan dalam senario yang berbeza dan mempunyai maksud yang berbeza:
Jika objek ini adalah input daripada pengguna, maka terdapat ralat dalam input pengguna Jika objek ini diperoleh daripada pelayan Ya, itu bermakna data yang dikembalikan oleh pelayan adalah tidak betul. Dalam senario yang berbeza, Ralat yang sama akan mempunyai makna yang lebih khusus, jadi kita perlu mencuba menangkap. Kemudian buang ralat tersuai yang mengandungi penerangan ralat dengan maklumat adegan.
Banyak perpustakaan dan rangka kerja melakukan ini dengan baik Ralat yang dilaporkan mempunyai maklumat senario tertentu dan juga penyelesaiannya. Anda boleh menggunakan errorno untuk mengetahui penyelesaiannya. Ini adalah pengendalian ralat yang disesuaikan.
Banyak ralat yang dilaporkan dalam kod perniagaan tidak diproses dengan cara ini dan Ralat asli dilaporkan secara langsung. Kami akan menggunakan platform pemantauan pengecualian untuk mengumpul beberapa ralat yang dilemparkan secara global, dan ralat ini selalunya merupakan maklumat yang agak primitif Walaupun lokasi ralat dan timbunan disediakan, kami masih perlu melihat kod sumber untuk mencari masalah.
Sebagai contoh, ralat dilaporkan bahawa objek kosong, tetapi bagaimana saya tahu objek apa yang kosong, apakah sebabnya, cara menyelesaikannya dan sama ada ia mempunyai nombor.
Adalah lebih baik jika kita dapat menangkap pelbagai ralat dan kemudian membuang beberapa ralat tersuai untuk senario tertentu. Perpustakaan pihak ketiga telah melakukan kerja yang baik dalam hal ini, tetapi beberapa orang dalam kod perniagaan memberi perhatian kepada ralat tersuai berdasarkan senario.
Sudah tentu, pengguna kod perniagaan bahagian hadapan menggunakan perisian melalui antara muka Malah, mereka hanya perlu menyediakan beberapa gesaan UI untuk pelbagai ralat. Memandangkan kod perpustakaan adalah untuk pembangun, adalah perlu untuk menerangkan pelbagai ralat dalam cara berasaskan senario, dan juga menomborkan ralat dan menyediakan penyelesaian.
Tetapi saya rasa kod perniagaan juga harus menangani ralat seperti kod pustaka pihak ketiga. Jangan laporkan ralat asli yang tidak bermakna, tetapi laporkan beberapa ralat tersuai dengan maksud tertentu, supaya anda boleh menyelesaikan masalah tersebut akan menjadi lebih mudah.
Walau bagaimanapun, walaupun ralat tersuai berasaskan senario boleh membantu menyelesaikan masalah dengan lebih baik, ia mestilah berdasarkan kepastian ralat yang mungkin dilaporkan oleh kod tersebut. Jika mesej ralat yang anda laporkan berbeza daripada punca ralat sebenar, ia akan meningkatkan kesukaran menyelesaikan masalah Adalah lebih baik untuk melaporkan ralat asal.
Proses pelaksanaan program adalah aliran kawalan Dijejaskan oleh pernyataan kawalan, data akan diubah semasa pelaksanaan aliran dan Aliran data merupakan dua aspek yang sering dianalisis dalam analisis program.
Ralat akan mengganggu aliran kawalan. Kita perlu melakukan beberapa pemprosesan pada ralat melalui try catch.
Pengendalian ralat mempunyai dua tujuan:
Satu adalah untuk melakukan beberapa pemprosesan rahsia, yang bersamaan dengan jika lain, dan tidak perlu melaporkan ralat itu lagi.
Salah satunya adalah untuk menerangkan ralat JS asli dalam senario, mencipta objek ralat dengan maklumat yang lebih khusus dan membuangnya.
Banyak perpustakaan melakukan ini dengan baik, malah memberikan nombor ralat dan penyelesaian. Tetapi sebenarnya, banyak kod perniagaan hanya memberikan maklum balas kepada pengguna pada UI, dan tidak menyediakan pembungkusan berasaskan senario untuk ralat yang dilemparkan. Ini menyebabkan ralat yang dikumpul oleh platform pemantauan ralat adalah ralat yang agak primitif, dan anda perlu menyemak kod sumber untuk menyelesaikan masalah. Jika anda juga boleh melakukan beberapa pembungkusan ralat berasaskan senario seperti kod perpustakaan, adalah lebih mudah untuk mengira dan menyelesaikan masalah, yang kebanyakan jurutera Javascript tidak melakukannya.
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !
Atas ialah kandungan terperinci Analisis mendalam tentang pernyataan try catch dalam JS dan dua fungsinya!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!