Jejak Tahap Halaman Asp.Net, Penyahpepijatan, Pengendalian Ralat (Contoh)

Isi kandungan:

Anonim

Dalam aplikasi apa pun, kesalahan pasti berlaku semasa proses pengembangan. Penting untuk dapat menemui kesalahan pada peringkat awal.

Di Visual Studio, mungkin untuk melakukan ini untuk aplikasi ASP.Net. Visual Studio digunakan untuk Debugging dan mempunyai teknik pengendalian ralat untuk ASP.Net.

Dalam tutorial ini, anda akan belajar-

  • Apakah Penyahpepijatan di ASP.NET?
  • Apakah Penjejakan di ASP.NET?
  • Jejak Tahap Halaman
  • Ralat Menangani: Memaparkan Halaman Kesalahan Khusus
  • Pengecualian Tidak Dikendalikan ASP.NET
  • Ralat semasa membuat ASP.NET

Apakah Penyahpepijatan di ASP.NET?

Debugging adalah proses penambahan breakpoint ke aplikasi. Titik putus ini digunakan untuk menjeda pelaksanaan program yang sedang berjalan. Ini membolehkan pembangun memahami apa yang berlaku dalam program pada satu masa tertentu.

Mari kita ambil contoh program. Program ini memaparkan rentetan "Kami melakukan debug" kepada pengguna. Katakan semasa kita menjalankan aplikasi, untuk beberapa sebab, rentetan tidak dipaparkan. Untuk mengenal pasti masalah, kita perlu menambah titik putus. Kita boleh menambah titik putus ke baris kod yang memaparkan rentetan. Titik putus ini akan menghentikan pelaksanaan program. Pada ketika ini, pengaturcara dapat melihat apa yang mungkin berlaku. Pengaturcara membetulkan program dengan sewajarnya.

Di sini dalam contoh, kita akan menggunakan 'DemoApplication' yang telah dibuat pada bab-bab sebelumnya. Dalam contoh berikut, kita akan melihat

  • Cara membuat aplikasi demo memaparkan rentetan.
  • Cara menambahkan titik putus ke aplikasi.
  • Cara debug aplikasi menggunakan breakpoint ini.

Langkah 1) Mari kita pastikan aplikasi web kita terbuka di Visual Studio. Pastikan Aplikasi Demo terbuka di Visual Studio.

Langkah 2) Sekarang buka fail Demo.aspx.cs dan tambahkan baris kod di bawah.

  • Kami hanya menambah baris kod Response.Write untuk memaparkan rentetan.
  • Oleh itu, ketika aplikasi dijalankan, ia harus menampilkan rentetan "Kami melakukan debug" di penyemak imbas web.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Response.Write("We are debugging");}}}

Langkah 3) Sekarang mari kita tambahkan titik putus. Titik putus adalah titik di Visual Studio di mana anda mahu pelaksanaan program berhenti.

  1. Untuk menambahkan titik putus, anda perlu mengklik lajur di mana anda mahu titik putus dimasukkan. Oleh itu, kami mahu program kami berhenti pada baris kod "Response.Write". Anda tidak perlu menambah arahan untuk menambah titik putus. Anda hanya perlu mengklik pada baris di mana anda mahu menambah titik putus.
  2. Setelah ini selesai, anda akan melihat bahawa kod tersebut ditandai dengan warna merah. Juga, gelembung merah muncul di lajur di sebelah garis kod.

Catatan: - Anda dapat menambahkan beberapa titik putus dalam aplikasi

Langkah 4) Sekarang anda perlu menjalankan aplikasi anda menggunakan Mod Debugging. Di Visual Studio, pilih pilihan menu Debug-> Start Debugging.

Pengeluaran:-

Apabila anda melakukan semua langkah dengan betul, pelaksanaan program akan rosak. Visual Studio akan menuju ke titik putus dan menandakan garis kod dengan warna kuning.

Sekarang, jika pengaturcara merasakan kodnya tidak betul, pelaksanaannya dapat dihentikan. Kod tersebut kemudian dapat diubah suai dengan sewajarnya. Untuk terus meneruskan program, pengaturcara perlu mengklik butang F5 pada papan kekunci.

Apakah Penjejakan di ASP.NET?

Jejak aplikasi membolehkan seseorang melihat apakah ada halaman yang diminta mengakibatkan kesilapan. Apabila penjejakan diaktifkan, halaman tambahan yang disebut trace.axd ditambahkan ke aplikasi. (Lihat gambar di bawah). Halaman ini dilampirkan pada aplikasi. Halaman ini akan menunjukkan semua permintaan dan statusnya.

Mari lihat bagaimana mengaktifkan penjejakan untuk aplikasi.

Langkah 1) Mari kita buat 'DemoApplication' kami. Buka fail web.config dari Solution Explorer.

Langkah 2) Tambahkan baris kod di bawah ke fail Web.config.

Pernyataan jejak digunakan untuk membolehkan penjejakan untuk aplikasi.

  • 'RequestLimit' dalam pernyataan jejak digunakan. Ini menentukan jumlah permintaan halaman yang harus dilacak.
  • Dalam contoh kami, kami memberikan had 40. Kami memberikan had kerana nilai yang lebih tinggi akan menurunkan prestasi aplikasi.

Jalankan "demoapplication" di Visual Studio.

Pengeluaran:-

Sekiranya anda melayari URL - http: // localhost: 53003 / trace.axd , anda akan melihat maklumat untuk setiap permintaan. Di sini anda dapat melihat apakah terdapat kesilapan dalam aplikasi. Jenis maklumat berikut ditunjukkan di halaman di atas

  1. Masa permintaan untuk laman web.
  2. Nama laman web yang diminta.
  3. Kod status permintaan web. (kod status 200 bermaksud bahawa permintaan berjaya).
  4. The View details yang anda izinkan untuk melihat lebih banyak detail mengenai permintaan web. Contohnya ditunjukkan di bawah. Satu maklumat terperinci penting yang diberikan adalah maklumat tajuk. Maklumat ini menunjukkan apa maklumat yang dihantar dalam tajuk setiap permintaan web.

Jejak Tahap Halaman

Jejak halaman menunjukkan semua maklumat umum tentang laman web ketika diproses. Ini berguna dalam penyahpepijatan jika halaman tidak berfungsi dengan alasan apa pun.

Visual Studio akan memberikan maklumat terperinci mengenai pelbagai aspek halaman. Maklumat seperti masa untuk setiap kaedah yang dipanggil dalam permintaan web. Contohnya, jika aplikasi web anda mengalami masalah prestasi, maklumat ini dapat membantu menyelesaikan masalah. Maklumat ini dipaparkan ketika aplikasi dijalankan di Visual Studio.

Mari lihat bagaimana mengaktifkan penjejakan aplikasi di peringkat halaman.

Langkah 1) Mari kita buat Permohonan Demo kami. Buka fail demo.aspx dari Solution Explorer

Langkah 2) Tambahkan baris kod di bawah ini untuk membolehkan penjejakan halaman. Dalam pengisytiharan Halaman, tambahkan baris Trace = "true" Garis kod ini akan membolehkan pengesanan tahap halaman.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" %>

Sekarang apabila halaman web Demo.aspx dipaparkan, anda akan mendapat banyak maklumat mengenai halaman tersebut. Maklumat seperti masa untuk setiap aspek kitaran hayat halaman dipaparkan di halaman ini.

Ralat Menangani: Memaparkan Halaman Kesalahan Khusus

Di ASP.Net, anda boleh memaparkan halaman ralat tersuai kepada pengguna. Jika aplikasi berisi jenis kesalahan, halaman khusus akan menampilkan kesalahan ini kepada pengguna.

Dalam contoh kami, pertama kami akan menambahkan halaman HTML. Halaman ini akan memaparkan rentetan kepada pengguna "Kami sedang mencari masalah". Kami kemudian akan menambahkan beberapa kod ralat ke halaman demo.aspx kami sehingga halaman ralat ditunjukkan.

Mari ikuti langkah-langkah yang dinyatakan di bawah

Langkah 1) Mari kita buat Permohonan Demo kami. Mari tambahkan halaman HTML ke aplikasi

  1. Klik kanan pada DemoApplication di Solution Explorer
  2. Pilih pilihan menu 'Tambah' -> Halaman HTML

Langkah 2) Pada langkah seterusnya, kita perlu memberikan nama ke laman HTML baru.

  1. Berikan nama sebagai 'ErrorPage.'
  2. Klik butang 'OK' untuk meneruskan.

Langkah 3) Halaman Kesalahan secara automatik akan dibuka di Visual Studio. Sekiranya anda pergi ke Penyelesaian Penyelesaian, anda akan melihat fail tersebut ditambahkan.

Tambahkan baris kod "Kami sedang mencari masalah" ke halaman HTML. Anda tidak perlu menutup fail HTML sebelum membuat perubahan pada fail web.config.

We are looking into the problem

Langkah 4) Sekarang anda perlu membuat perubahan pada fail web.config. Perubahan ini akan memberitahu bahawa setiap kali terjadi kesalahan dalam aplikasi, halaman kesalahan khusus harus ditampilkan.

Tag 'customErrors' memungkinkan untuk menentukan halaman kesalahan tersuai. Properti defaultRedirect ditetapkan ke nama halaman kesalahan tersuai kami yang dibuat pada langkah sebelumnya.

Langkah 5) Sekarang mari kita tambahkan beberapa kod yang salah ke halaman demo.aspx.cs. Buka halaman ini dengan klik dua kali pada fail di Solution Explorer

Tambahkan kod di bawah ini ke fail Demo.aspx.cs.

  • Garis kod ini dirancang untuk membaca baris teks dari fail.
  • Fail sepatutnya terletak di pemacu D dengan nama 'Contoh.txt.'
  • Tetapi dalam keadaan kita, fail ini tidak benar-benar wujud. Jadi kod ini akan menghasilkan kesalahan semasa aplikasi berjalan.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){String path = @"D:\Example.txt";string[] lines;lines = File.ReadAllLines(path);}}}

Sekarang jalankan kod di Visual Studio dan anda seharusnya mendapat output di bawah.

Pengeluaran:-

Halaman di atas menunjukkan bahawa berlaku kesalahan dalam aplikasi. Akibatnya, halaman Error.html dipaparkan kepada pengguna.

Pengecualian Tidak Dikendalikan ASP.NET

Walaupun dalam senario terbaik, terdapat kes ralat yang tidak dapat dilihat.

Andaikan jika pengguna melayari halaman yang salah dalam aplikasi. Ini adalah sesuatu yang tidak dapat diramalkan. Dalam kes sedemikian, ASP.Net dapat mengarahkan pengguna ke errorpage.html.

Mari lihat contoh mengenai perkara ini.

  • Kami akan menggunakan 'DemoApplication' yang sama dengan Errorpage.html.
  • Dan kami akan cuba melihat laman web yang tidak ada dalam aplikasi kami.
  • Kita harus diarahkan ke halaman ErrorPage.html kita dalam kes ini. Mari lihat langkah-langkah untuk mencapainya.

Langkah 1) Mari kita buat Permohonan Demo kami. Buka fail Global.asax.cs dari Solution Explorer

CATATAN : Fail global.asax.cs digunakan untuk menambahkan kod yang akan berlaku di semua halaman dalam aplikasi.

Langkah 2) Tambahkan baris kod di bawah ini ke global.asax.cs. Garis-garis ini akan digunakan untuk memeriksa kesalahan dan menampilkan halaman ErrorPage.html dengan sewajarnya.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Application_Error(object sender, EventArgs e){‬ HttpException lastErrorWrapper = Server.GetLastError() as HttpException;if(lastErrorWrapper.GetHttpCode() == 404)Server.T ransfer("~/ErrorPage.html");}}}

Penjelasan Kod: -

  1. Baris pertama ialah pengendali acara Application_Error. Peristiwa ini dipanggil setiap kali berlaku kesalahan dalam aplikasi. Perhatikan bahawa nama acara mestilah 'Application_Error'. Dan parameternya seperti yang ditunjukkan di atas.
  2. Seterusnya, kami menentukan objek jenis kelas HttpException. Ini adalah objek standard yang akan menyimpan semua butiran ralat. Kami kemudian menggunakan kaedah Server.GetLastError untuk mendapatkan semua butiran ralat terakhir yang berlaku dalam aplikasi.
  3. Kami kemudian memeriksa apakah kod kesalahan ralat terakhir adalah 404. (Kod ralat 404 adalah kod standard yang dikembalikan ketika pengguna menjelajah ke halaman yang tidak dijumpai). Kami kemudian memindahkan pengguna ke halaman ErrorPage.html jika kod ralat sepadan.

Sekarang jalankan kod di Visual Studio dan anda seharusnya mendapat output di bawah

Pengeluaran:-

Layari halaman http: // localhost: 53003 / Demo1.aspx . Ingat bahawa Demo1.aspx tidak ada dalam aplikasi kami. Anda kemudian akan mendapat output di bawah.

Halaman di atas menunjukkan bahawa berlaku kesalahan dalam aplikasi. Akibatnya, halaman Error.html dipaparkan kepada pengguna.

Ralat semasa membuat ASP.NET

Dengan mencatat kesilapan aplikasi, ini membantu pembangun untuk membuat debug dan menyelesaikan ralat tersebut di kemudian hari. ASP.Net mempunyai kemudahan untuk log kesilapan. Ini dilakukan dalam fail Global.asax.cs semasa ralat ditangkap. Semasa proses menangkap, pesan kesalahan dapat ditulis ke dalam fail log.

Mari lihat contoh mengenai perkara ini.

  • Kami akan menggunakan Aplikasi Demo yang sama dengan Errorpage.html.
  • Dan kami akan cuba melihat laman web yang tidak ada dalam aplikasi kami.
  • Kita harus diarahkan ke halaman ErrorPage.html kita dalam kes ini.
  • Dan pada masa yang sama, kami akan menulis mesej ralat ke fail log. Mari lihat langkah-langkah untuk mencapainya.

Langkah 1) Mari kita buat Permohonan Demo kami. Buka fail Global.asax.cs dari Solution Explorer

Langkah 2) Tambahkan baris kod di bawah ini ke global.asax.cs. Ia akan memeriksa kesilapan dan memaparkan halaman ErrorPage.html dengan sewajarnya. Juga pada masa yang sama, kami akan mencatat butiran ralat dalam fail bernama 'AllErrors.txt.' Sebagai contoh, kami akan menulis kod untuk membuat fail ini dibuat pada pemacu D.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Application_Error(object sender, EventArgs e){Exception exc = Server.GetLastError();String str ;str = exc.Message;String path = @"D:\AllErrors.txt";File.WriteAllTest(path,str);Server.trrasfer("~/ErrorPage.html");}}}

Penjelasan Kod: -

  1. Baris pertama adalah untuk mendapatkan ralat itu sendiri dengan menggunakan kaedah 'Server.GetLastError'. Ini kemudian diberikan kepada pemboleh ubah 'exc'.
  2. Kami kemudian membuat pemboleh ubah rentetan kosong yang disebut 'str'. Kami mendapat mesej ralat sebenar menggunakan harta 'exc.Message'. Properti exc.Message akan mempunyai mesej yang tepat untuk sebarang kesalahan yang berlaku semasa menjalankan aplikasi. Ini kemudian diberikan kepada pemboleh ubah rentetan.
  3. Seterusnya, kami menentukan fail yang dipanggil 'AllErrrors.txt.' Di sinilah semua mesej ralat akan dihantar. Kami menulis rentetan 'str' yang mengandungi semua mesej ralat ke fail ini.
  4. Akhirnya, kami memindahkan pengguna ke fail ErrorPage.html.

Pengeluaran:-

Layari halaman http: // localhost: 53003 / Demo1.aspx . Ingat bahawa Demo1.aspx tidak ada dalam aplikasi kami. Anda kemudian akan mendapat output di bawah.

Dan pada masa yang sama, jika anda membuka fail 'AllErrors.txt' anda akan melihat maklumat di bawah.

Mesej ralat kemudian dapat disampaikan kepada pemaju di kemudian hari untuk tujuan penyahpepijatan.

Ringkasan

  • ASP.Net mempunyai kemudahan untuk melakukan penyahpepijatan dan pengendalian Ralat.
  • Penyahpepijatan dapat dicapai dengan menambahkan titik putus pada kod. Satu kemudian menjalankan pilihan Mula dengan Debugging di Visual Studio untuk menyahpepijat kod.
  • Menelusuri adalah kemudahan untuk memberikan lebih banyak maklumat semasa menjalankan aplikasi. Ini boleh dilakukan di peringkat aplikasi atau halaman.
  • Pada peringkat halaman, kod Trace = true perlu ditambahkan pada arahan halaman.
  • Pada peringkat aplikasi, halaman tambahan yang disebut Trace.axd dibuat untuk aplikasi. Ini memberikan semua maklumat penjejakan yang diperlukan.