このメソッドは、ネイティブ モバイル アプリケーションで
Composite コマンドが失敗したときにエラーを表示するために自動的に実行されるのと同じことを実行します。
戻り値: Numeric(3)
値 |
説明 |
0 |
エラーなし |
1 |
不明なエラー |
2 |
ユーザーによるアクションのキャンセル |
3 |
不適切なパラメーター |
実行されるアクションが、オンラインの
Procedure オブジェクトまたは
Data Provider オブジェクトなど、サーバー側にある GeneXus オブジェクトを呼び出す場合、返される値はこの呼び出しによって返される HTTP コードに対応します (例: 404 または 500)。サーバーから応答がない場合は、
&Err 変数の値は 1 になります。
パラメーター: なし。
1) エラーを処理するために Composite コマンドを使用する必要がある場合もありますが、別のものを実装する必要もあります。
たとえば、オンラインアプリケーションで「お気に入り」のトグルボタンを解決する必要があるとします。
イベントを次のように定義できます。
Event “ToggleFavorites”
Composite
&IsFav = not &IsFav
ProcSetFav(&IsFav) // プロシージャーは、現在の状態 (「お気に入り」か「お気に入り」でないか) を示すために、動的なプロパティを使用してスタイルを変更 EndComposite
EndEvent
このソリューションの問題点は、外観が変更されるが、サーバーへの往復後に行われるため、UX が良くないことです。さらに、プロシージャーが失敗した場合、&IsFav の値は適切な状態になりません。
別のソリューションは次のとおりです。
Event “ToggleFav”
Composite
&IsFav = not &IsFav
Control.Class = iif(&IsFav, !"FavClass”, !“FavClass”)
ProcSetFav(&IsFav) // この場合、プロシージャーは「お気に入り」の新しい状態を保存するのみ
EndComposite
EndEvent
このソリューションは優れた UX フィードバックを提供しますが、プロシージャーが失敗した場合、&IsFav の値が適切な状態にならないという点で、上記のソリューションと同じ問題があります。
そこで、
Interop.ShowError メソッドを使用する次のソリューションを検討します。
Event “ToggleFav”
Do ’ToogleIsFav’
ProcSetFav(&IsFav) // //この場合、プロシージャーは「お気に入り」の新しい状態を保存するのみ
if Interop.ShowError() <> 0
Do ’ToogleIsFav’ // プロシージャーが失敗する前の状態に復元
endif
EndEvent
Sub ’ToogleIsFav’
&IsFav = not &IsFav
Control.Class = iif(&IsFav, !oFavClass”, !“FavClass”)
EndSub
Interop.ShowError() メソッドは GeneXus によって提供され、
Composite コマンドが失敗したときにエラーを表示するために自動的に行われるのと同じことを行います。
次の GeneXus コードと同じように解決します。
Sub “ShowError”if &err <> 0 and&err <> 2 // エラーなし、キャンセルif &errMsg.IsEmpty()
msg(“GXM_ThereWasAnErrorExecutingAction”)
else
msg(&errMsg)
endif
endif
EndSub
さらに、
If コマンドでの評価を容易にするために、返された &Err 変数がロードされます。
2) 次のコードには
Composite コマンドがなく、Interop.ShowError メソッドを使用してエラーを示しています。
Event 'InsertNewUser’
&ErrorResult.SetEmpty()
ProcNewUser(&UserInformation)
&ErrorResult = Interop.ShowError()
if &ErrorResult <> 0
//何らかのコード... Else
msg("A new user was added successfully", nowait)
EndIf
Endevent
ジェネレーター: Android、
Apple
GeneXus 17 Upgrade 11 以降。
Interop 外部オブジェクト