mirror of https://github.com/AMT-Cheif/Stylet.git
Remove all instances of 'throw new Exception'
This commit is contained in:
parent
b254f92fe8
commit
240a543de8
|
@ -158,7 +158,7 @@ namespace Stylet
|
|||
void IViewAware.AttachView(UIElement view)
|
||||
{
|
||||
if (this.View != null)
|
||||
throw new Exception(String.Format("Tried to attach View {0} to ViewModel {1}, but it already has a view attached", view.GetType().Name, this.GetType().Name));
|
||||
throw new InvalidOperationException(String.Format("Tried to attach View {0} to ViewModel {1}, but it already has a view attached", view.GetType().Name, this.GetType().Name));
|
||||
|
||||
this.View = view;
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ namespace Stylet
|
|||
// TODO: This might need some more thinking
|
||||
var viewType = AssemblySource.Assemblies.SelectMany(x => x.GetExportedTypes()).FirstOrDefault(x => x.FullName == viewName);
|
||||
if (viewType == null)
|
||||
throw new Exception(String.Format("Unable to find a View with type {0}", viewName));
|
||||
throw new StyletViewLocationException(String.Format("Unable to find a View with type {0}", viewName), viewName);
|
||||
|
||||
return viewType;
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ namespace Stylet
|
|||
var viewType = this.LocateViewForModel(model.GetType());
|
||||
|
||||
if (viewType.IsInterface || viewType.IsAbstract || !typeof(UIElement).IsAssignableFrom(viewType))
|
||||
throw new Exception(String.Format("Found type for view: {0}, but it wasn't a class derived from UIElement", viewType.Name));
|
||||
throw new StyletViewLocationException(String.Format("Found type for view: {0}, but it wasn't a class derived from UIElement", viewType.Name), viewType.Name);
|
||||
|
||||
var view = (UIElement)IoC.GetInstance(viewType, null);
|
||||
|
||||
|
@ -141,4 +141,26 @@ namespace Stylet
|
|||
viewModelAsViewAware.AttachView(view);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Exception raised while attempting to locate a View for a ViewModel
|
||||
/// </summary>
|
||||
public class StyletViewLocationException : Exception
|
||||
{
|
||||
/// <summary>
|
||||
/// Name of the View in question
|
||||
/// </summary>
|
||||
public readonly string ViewTypeName;
|
||||
|
||||
/// <summary>
|
||||
/// Create a new StyletViewLocationException
|
||||
/// </summary>
|
||||
/// <param name="message">Message associated with the Exception</param>
|
||||
/// <param name="viewTypeName">Name of the View this question was thrown for</param>
|
||||
public StyletViewLocationException(string message, string viewTypeName)
|
||||
: base(message)
|
||||
{
|
||||
this.ViewTypeName = viewTypeName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue