Altered the profile read exception handling a little.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
|
||||
namespace ASCOM.Meade.net.Wrapper
|
||||
{
|
||||
public class GetValueException : Exception
|
||||
{
|
||||
public GetValueException(
|
||||
string driverId,
|
||||
string name,
|
||||
string subKey,
|
||||
string defaultValue,
|
||||
Exception innerException
|
||||
) : base ( $"Error getting value {name} from driver {driverId} in {subKey} and default value {defaultValue} cannot be used.", innerException)
|
||||
{
|
||||
}
|
||||
|
||||
public GetValueException(
|
||||
string driverId,
|
||||
string name,
|
||||
string subKey,
|
||||
string defaultValue,
|
||||
string value,
|
||||
Exception innerException):
|
||||
base($"Error converting value {name} from {value}", innerException)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Globalization;
|
||||
using ASCOM.Utilities;
|
||||
using ASCOM.Utilities.Interfaces;
|
||||
|
||||
@@ -7,7 +8,11 @@ namespace ASCOM.Meade.net.Wrapper
|
||||
{
|
||||
public interface IProfileWrapper : IProfile, IProfileExtra, IDisposable
|
||||
{
|
||||
int GetValueInt(string driverId, string name, string subKey, string defaultValue);
|
||||
short GetValueShort(string driverId, string name, string subKey, string defaultValue);
|
||||
|
||||
bool GetValueBool(string driverId, string name, string subKey, string defaultValue);
|
||||
double GetValueDouble(string driverId, string name, string subKey, string defaultValue);
|
||||
}
|
||||
|
||||
public class ProfileWrapper : IProfileWrapper
|
||||
@@ -36,7 +41,68 @@ namespace ASCOM.Meade.net.Wrapper
|
||||
|
||||
public string GetValue(string driverId, string name, string subKey, string defaultValue)
|
||||
{
|
||||
return _profile.GetValue(driverId, name, subKey, defaultValue);
|
||||
try
|
||||
{
|
||||
return _profile.GetValue(driverId, name, subKey, defaultValue);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new GetValueException(driverId, name, subKey, defaultValue, e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int GetValueInt(string driverId, string name, string subKey, string defaultValue)
|
||||
{
|
||||
var value = _profile.GetValue(driverId, name, subKey, defaultValue);
|
||||
try
|
||||
{
|
||||
return int.Parse(value, CultureInfo.InvariantCulture);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new GetValueException(driverId, name, subKey, defaultValue, value, e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public short GetValueShort(string driverId, string name, string subKey, string defaultValue)
|
||||
{
|
||||
var value = _profile.GetValue(driverId, name, subKey, defaultValue);
|
||||
try
|
||||
{
|
||||
return short.Parse(value, CultureInfo.InvariantCulture);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new GetValueException(driverId, name, subKey, defaultValue, value, e);
|
||||
}
|
||||
}
|
||||
|
||||
public bool GetValueBool(string driverId, string name, string subKey, string defaultValue)
|
||||
{
|
||||
var value = _profile.GetValue(driverId, name, subKey, defaultValue);
|
||||
try
|
||||
{
|
||||
return bool.Parse(value);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new GetValueException(driverId, name, subKey, defaultValue, value, e);
|
||||
}
|
||||
}
|
||||
|
||||
public double GetValueDouble(string driverId, string name, string subKey, string defaultValue)
|
||||
{
|
||||
var value = _profile.GetValue(driverId, name, subKey, defaultValue);
|
||||
try
|
||||
{
|
||||
return double.Parse(value, CultureInfo.InvariantCulture);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new GetValueException(driverId, name, subKey, defaultValue, value, e);
|
||||
}
|
||||
}
|
||||
|
||||
public void WriteValue(string driverId, string name, string value, string subKey)
|
||||
|
||||
Reference in New Issue
Block a user