0

私のコードにはいくつかのクラスがあります。これらのクラスから、オブジェクトを開始します。

$c = new category ($myGoodObject->categoryId); 

これにより、myGoodObject のカテゴリ オブジェクトが得られます。ただし、たとえば、たとえば 1000 の categoryId がデータベースで定義されていない場合、クラスは例外をスローします。

これどうやって捕まえるの?また、存在しない場合があるデータベースからオブジェクトを開始/ロードするためのベストプラクティスは何ですか? 失敗を避けるには?

ありがとう!

編集:

私はこれを試しました:

try {
$c = new category (1000);
} catch (Exception $e) {return false;}

しかし、うまくいきませんでした。

4

3 に答える 3

1
try
{
    $c = new category ($myGoodObject->categoryId); 
} 
catch (Exception $e) 
{
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

ベスト プラクティスとしては、最初にデータベースを読み取って値が存在するかどうかを確認する必要があります。存在しない場合はオブジェクトを作成しないため、例外の必要がなくなります。

于 2012-07-20T23:03:06.497 に答える
0

例外がスローされる場合は、try..catch ブロックを使用します

try {
   //try assigning 
catch (Exception $e) {
   //do something
}

例外の詳細については、こちらをご覧ください

于 2012-07-20T23:03:39.863 に答える
-1

キャッチしないでください。使用する前に、そこにあることを確認してください...

if(isset($myGoodObject->categoryId)){
    $c = new category ($myGoodObject->categoryId); 
    //...
}
于 2012-07-20T23:04:46.590 に答える