• このライブラリについて
  • サンプルコード
  • リファレンス
  • ドライバAPI
目次の表示/非表示
  • 例外処理
  • アナログ入力サンプル
  • アナログ出力サンプル
  • デジタル入力サンプル
  • デジタル出力サンプル
  • モーター制御サンプル
  • リレー出力サンプル

例外処理

USB通信やハードウェアに異常が発生した場合は例外をスローします。
適切な場所でキャッチして処理するようにしてください。
原因は、Messageから取得できます。

(例)

// デバイスのインスタンスを生成
using var device = new Aio841632aU();

try
{
    // デバイスに接続
    device.Connect();

    // アナログ入力
    Span<Voltage> ainValues = stackalloc Voltage[device.Ain.ChannelCount];
    device.Ain.Input(ainValues);

    // アナログ出力
    ReadOnlySpan<Voltage> aoutValues = stackalloc Voltage[] { Voltage.FromMillivolts(1234), Voltage.FromVolts(5.6) };
    device.Aout.Output(aoutValues);

    // デジタル入力
    Span<OnOffValue> dinValues = stackalloc OnOffValue[device.Din.ChannelCount];
    device.Din.Input(dinValues);

    ReadOnlySpan<OutputValue> doutValues = stackalloc OutputValue[] { OutputValue.Off, OutputValue.Keep, OutputValue.On };
    device.Dout.Output(doutValues);

    // デバイスのインスタンスを破棄
    device.Dispose();
}
catch (DeviceException exception)
{
    Console.WriteLine(exception.Message);
}

ライブラリからスローしている例外は以下のとおりです。

例外 理由
ArgumentOutOfRangeException 値が範囲外
ArgumentNullException 関数に渡された引数がNULL
ArgumentException 関数に渡された引数が不正
DeviceException ※1 USB通信エラー
ハードウェアエラー
DllNotFoundException ドライバ(DLL)が見つからない
NotSupportedException サポートされていない関数が実行された
OutOfMemoryException 利用可能なメモリが不足している

※1
DeviceException例外がスローされた場合、主に以下の理由などが考えられます。

  • USB通信に失敗した(モーターなどの強いノイズの影響など)
  • 動作中に供給電源電圧が定格範囲を外れてしまっている
    (供給電源の電流容量不足による電圧低下など)
  • 外部との接続方法に問題がある
  • USBケーブルの接触不良
  • ハードウェアの故障
このページの内容
トップに戻る Copyright © Y2 Corporation