Penanganan kesalahan

Power Fx mendukung penanganan kesalahan tingkat rumus. Fitur ini diaktifkan secara default untuk semua aplikasi baru. Namun, beberapa aplikasi lama mungkin menonaktifkannya di Pengaturan aplikasi. Sebaiknya aktifkan fitur ini.

Untuk memeriksa apakah fitur ini diaktifkan:

  1. Buka aplikasi kanvas untuk pengeditan.
  2. Buka tab Pengaturan>Pembaruan>Dihentikan.
  3. Pastikan Pengelolaan tingkat rumus tidak diaktifkan.

Saat pengaturan ini diaktifkan, Anda dapat menggunakan rumus seperti IfError, , IsErrorError, dan IsBlankorError. Fungsi-fungsi ini membantu Anda mendeteksi kesalahan, memberikan nilai alternatif, atau mengambil tindakan tertentu berdasarkan kesalahan. Saat mengaktifkan pengaturan ini, Anda dapat menulis nilai null atau kosong ke sumber data. Saat Anda menonaktifkan fitur ini, kesalahan dikembalikan sebagai nilai kosong.

Penanganan kesalahan validasi

Fungsi-fungsi ini membantu memvalidasi input seperti format yang salah atau bidang yang harus diisi. Gunakan If pernyataan atau fungsi seperti IsBlank dan IsError untuk memvalidasi input pengguna. Berikan pesan kesalahan yang jelas dan cegah pemrosesan lebih lanjut hingga input diperbaiki.

If( IsBlank(TextInput.Text),
    Notify("Field cannot be blank", 
    NotificationType.Error),
    // Continue with processing
)

Penanganan kesalahan fungsi patch

Mirip dengan contoh sebelumnya, Error fungsi membantu menangkap kesalahan saat menambal data ke sumber data. Fungsi ini Patch melaporkan kesalahan dengan dua cara.

Ini dapat mengembalikan nilai kesalahan sebagai hasil dari operasi.

UpdateContext(
    {   
    result : Patch(
             Feeds,
             Defaults(Feeds),
             {
                 createdon: Now(),
                 crde8_content: TextInput1_1.Text
                 cr9ce_imageurl: filename
             }
        )
    }
)

Anda dapat mendeteksi kesalahan dengan menggunakan IsError dan mengganti atau menekannya dengan menggunakan IfError.

IfError(result, Notify("There was an issue saving data" , NotificationType.Error));
IfError(result, Notify("There was an issue saving data" , & FirstError.Message, NotificationType.Error))

If(
    IsError(
        Patch(
            Feeds,
            Defaults(Feeds),
            {
                createdon: Now(),
                crde8_content: TextInput1_1.Txt,
                cr9ce_imageurl: filename        
            }
        )
    ),
    Notify("Error: There was an issue saving data", NotificationType.Error)
)

Penanganan kesalahan formulir

Saat Anda menggunakan Formulir untuk mengirimkan data dengan menggunakan SubmitForm fungsi , gunakan properti OnFailure kontrol Formulir untuk memberi tahu pengguna tentang pesan kesalahan.

// OnSelect property of the form's submit button
SubmitForm(frm_SubmitData);

// OnSuccess property of the form
Navigate('Success Screen');

// OnFailure property of the form
Notify("Error: the invoice could not be created", NotificationType.Error);

Pesan kesalahan kustom dengan menggunakan properti OnError

Properti Power Apps OnError menangkap semua kesalahan yang tidak tertangani di aplikasi Anda. Dengan menggunakan OnError properti , Anda dapat menjalankan ekspresi setiap kali aplikasi mengalami kesalahan yang tidak tertangani. Misalnya, Anda dapat menyimpan kesalahan dalam variabel atau menggunakan fungsi seperti IfError untuk mengganti kesalahan dengan nilai lain. Untuk menggunakan OnError properti, tambahkan properti ke aplikasi tempat Anda ingin menangani kesalahan. Kemudian, tulis rumus dalam kotak OnError properti untuk menentukan pesan kesalahan yang ingin Anda tampilkan.

App.OnError tidak dapat mengganti kesalahan seperti IfError bisa. Saat App.OnError dijalankan, kesalahan sudah terjadi dan hasilnya sudah melalui rumus lain. App.OnError hanya mengontrol bagaimana kesalahan dilaporkan ke pengguna akhir. Ini juga menyediakan cara bagi pembuat untuk mencatat kesalahan jika mereka mau.

Kode App.OnError ini dapat membantu menemukan sumber kesalahan:

Notify(
    Concatenate(
        FirstError.Message,
        ", Observed: ",
        FirstError.Observed,
        ", Source: ",
        FirstError.Source
    ),
    NotificationType.Error
)

Langkah selanjutnya