Direkomendasikan: Sangat memahami fitur magis FSO di ASP Di ASP, FSO berarti objek sistem file, yang merupakan objek sistem file. Sistem file komputer yang akan kami manipulasi mengacu pada berada di server web. Jadi, pastikan Anda memiliki izin yang tepat untuk ini. Idealnya, Anda dapat menggunakan mesin Anda sendiri
7.1.2 Kesalahan Semantik atau RuntimePenemuan dan penanganan kesalahan sintaks menjengkelkan, tetapi Anda akan menemukan beberapa jenis kesalahan lain yang sangat menarik dalam pemrograman - kesalahan semantik atau kesalahan runtime. Jenis kesalahan ini hanya ditemukan saat menjalankan kode skrip atau program lainnya. Dengan kata lain, kode lengkap dan valid telah ditafsirkan atau disusun oleh penerjemah atau kompiler, dan kesalahan terjadi selama eksekusi. Istilah keliru run-time pass mengacu pada hasil kesalahan semantik, yaitu kesalahan seperti itu ada di semantik kode dan menjadi terlihat ketika kode dijalankan.
Perbedaan ini berasal dari fakta bahwa kompiler atau penerjemah program harus membuat deskripsi kode internal sebelum menangani kode program, yang melibatkan kecocokan awal dan akhir dari beberapa struktur untuk menunjukkan apa yang berisi masing -masing struktur, dan kemudian menganalisis setiap kalimat untuk mengetahui cara menjalankan kalimat. Misalnya, jika ada IF jika ... lain ... Akhiri jika struktur, langkah pertama penerjemah atau kompiler adalah untuk menganalisis pernyataan mana yang ada di bagian kemudian dan mana yang berada di bagian lain. Tujuan dari langkah ini adalah untuk menentukan cabang mana yang akan dieksekusi setelah menguji kondisi IF dalam struktur.
Perbedaan nyata antara kompiler (seperti yang terlihat dalam bahasa pemrograman seperti Visual Basic dan C) dan seorang penerjemah (seperti juru bahasa untuk bahasa skrip seperti VBScript dan JScript) adalah bahwa kompiler tidak mencoba menjalankan kode program, tetapi setelah dua preprocessing dari program sumber. Interpreter tidak berisi file kode, tetapi dieksekusi langkah demi langkah saat runtime.
1. Kesalahan menyebabkan pelarian berhenti
Jika program berisi kesalahan semantik, Anda biasanya bisa mendapatkan prompt saat runtime. Jika Anda beruntung, program akan berhenti ketika kesalahan terjadi, sehingga mudah untuk mengetahui di mana kesalahannya. Misalnya, program berikut mendefinisikan array dengan enam elemen.
<%
Dimrvalues DIM (5) 'untuk memegang enam elemen, diindeks dari 0 hingga 5
Arrvalues (6) = wah, mendapat kesalahan
%>
Jika Anda mencoba membaca atau mengatur nilai elemen dengan subscript ke 6, Anda bisa mendapatkan kesalahan run-time, seperti yang ditunjukkan pada Gambar 7-7:
Gambar 7-7 Hasil Eksekusi Program 6
Perhatikan bahwa tipe kesalahan di sini adalah kesalahan runtime (setara dengan semantik), bukan kesalahan sintaks. Pesan kesalahan menunjukkan jumlah baris di mana kesalahan berada dan deskripsi kesalahan, yang membantu kami menemukan kesalahan yang sesuai dengan lebih mudah. Tetapi ini adalah contoh sederhana, dalam kode program yang lebih kompleks, kesalahan ini dapat terjadi dalam beberapa program yang melintasi beberapa nilai dan menambahkannya ke array. Seperti yang ditunjukkan di bawah ini:
<%
Redup arrvalues (5) 'untuk menampung enam elemen
Untuk intloop = 0 untuk intlistcount 'jumlah item dalam beberapa daftar
arrvalues (intloop) = request.form (selectedItems) (intlistcount)
Berikutnya
%>
Dalam hal ini, kemungkinan Anda telah memperoleh terlalu banyak entri daftar, atau indeks array tidak cukup. Menurut persyaratan kode, Anda dapat menentukan kesalahan mana itu, dan Anda dapat menyelesaikan kesalahan ini dengan meningkatkan ukuran array.
<%
Redup arrvalues (10) 'untuk menampung sebelas elemen
Untuk intloop = 0 untuk intlistcount 'jumlah item int beberapa daftar
arrvalues (intloop) = request.form (selectedItems) (intlistcount)
Berikutnya
%>
Atau atur parameter loop yang sesuai untuk menyelesaikan penanganan kesalahan.
<%
Redup arrvalues (5) 'untuk menampung enam elemen
Intarraymax = intlistcount
Jika intarraymax> 5 maka intarraymax = 5
Untuk intloop = 0 ke intarraymax 'hanya tambahkan enam item pertama
arrvalues (intloop) = request.form (selectedItems) (intlistcount)
Berikutnya
%>
Banyak kesalahan runtime lainnya dapat menghentikan halaman web dari berjalan, seperti instantiasi beberapa komponen atau objek, karena ada kesalahan progid atau karena komponen tidak diinstal dengan benar. Dalam kasus ini, hasilnya selalu memberikan ActiveX tidak dapat membuat pesan kesalahan objek, diikuti oleh nomor baris panggilan ke server.CreateObject Metode.
2. Hasil kesalahan menghasilkan kesalahan
Seperti disebutkan di atas, kita mungkin beruntung jika kita mengalami kesalahan runtime yang menyebabkan kode program berhenti. Tetapi situasi lain adalah bahwa program tersebut dapat mengeksekusi dengan baik, seolah -olah tidak ada yang terjadi, dan akhirnya menghasilkan hasil yang salah. Ini adalah kesalahan yang paling sulit untuk ditemukan dan dipecahkan karena Anda tidak menyadari sesuatu yang salah. Misalnya, misalkan ada halaman web yang mengambil ulang tahun pengguna sebagai nilai tanggal dan menampilkan elemen tanggal secara terpisah (Anda dapat menambahkannya sebagai tiga entri ke database).
<%
'Dapatkan nilai dari permintaan dan tampilkan
DatbIrthDate = request.Form (BirthDate)
Response.write Nilai yang Anda masukkan adalah: & DatbIrthDate & <p>
'Dapatkan elemen tanggal individu
Intday = Day (DatbIrthDate)
Intmonth = Bulan (DatbIrthDate)
intyear = tahun (datbirthDate)
'dan menampilkannya
Response.write Day: & CSTR (Intday) & <br>
Response.write Month: & CSTR (Intmonth) & <br>
Response.write tahun: & cstr (intyear) & <br>
%>
Gambar 7-8 adalah hasilnya, yang ditampilkan di American Date Style Month/Day/Year, seolah-olah semuanya baik-baik saja.
Gambar 7-8 Layar yang menampilkan ulang tahun
Namun, jika Anda memasukkan tanggal ilegal atau membiarkan kotak teks input kosong, Anda akan mendapatkan kesalahan run-time, seperti yang ditunjukkan pada Gambar 7-9:
Gambar 7-9 Layar Prompt Kesalahan
(1) Jika bukan ahli jscript
Ini bukan masalah besar ketika mencari kesalahan, karena kami dapat dengan cepat menemukan mengapa kesalahan terjadi. Fakta bahwa halaman web berhenti berjalan membantu kami melacak kesalahan. Namun, kesalahan yang tidak terduga dapat terjadi. Misalnya, menulis ulang kode program dalam JScript, karena saya bukan ahli JScript, beberapa kesalahan kecil muncul.
<%
// Dapatkan nilai dari permintaan dan tampilkan
var datbIrthDate = Tanggal baru (request.Form (BirthDate));
Response.write (nilai yang Anda masukkan adalah: DatbIrthDate <p>);
// Dapatkan elemen tanggal individu
intday = datbirthdate.getday ();
Intmonth = DatbIrthDate.GetMonth ();
intyear = datbirthdate.getYear ();
// dan tampilkannya
Response.write (hari: intday.tostring () <br>);
Response.write (bulan: intmonth.toString () &
Bagikan: Gunakan ASP untuk mengimplementasikan strategi operasi lengkap untuk informasi trek MP3 Mari kita bicara secara singkat tentang tag ID3 MP3, karena ini terutama digunakan untuk mengoperasikan hal ini. MP3 bukan yang kita lihat hari ini di awal. Ada penyanyi, era, koleksi, dll. Informasi, dan hanya beberapa parameter sederhana seperti ya/tidak untuk menunjukkan apakah itu pribadi atau hak cipta.