Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Russell <cody@jhu.edu>2019-05-09 08:03:04 +0300
committerCody Russell <cody@jhu.edu>2019-05-09 08:17:05 +0300
commit1e73f3abd6cd037ff1e9a10bc0cdc090a561cc46 (patch)
tree5685f3184380bc787b882cb20457fca1ec3c5e8e
parent9bb2c7210641342df37d2744d643900d16f07370 (diff)
Catch exception from having a bad LangVersion setting in .csproj
If LangVersion is an invalid value and throws an exception, the general page fails to load. So now we catch this exception and display the error on the page so the user can correct it. Fixes VSTS #802073
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs8
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CompilerOptionsPanelWidget.cs24
2 files changed, 21 insertions, 11 deletions
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs
index 9d30f7a21c..ef73cbd84e 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs
@@ -227,9 +227,11 @@ namespace MonoDevelop.CSharp.Project
return val;
}
set {
- if (LangVersion == value) {
- return;
- }
+ try {
+ if (LangVersion == value) {
+ return;
+ }
+ } catch (Exception) { }
langVersion = LanguageVersionToString (value);
NotifyChange ();
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CompilerOptionsPanelWidget.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CompilerOptionsPanelWidget.cs
index 396dc158c6..2085650193 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CompilerOptionsPanelWidget.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CompilerOptionsPanelWidget.cs
@@ -101,10 +101,14 @@ namespace MonoDevelop.CSharp.Project
var langVerStore = new ListStore (typeof (string), typeof(LanguageVersion));
foreach (var (text, version) in CSharpLanguageVersionHelper.GetKnownLanguageVersions ()) {
- if (unsupportedLanguageVersions.Contains (version) && compilerParameters.LangVersion != version) {
- // Mono's MSBuild does not currently support C# 8.
- } else {
- langVerStore.AppendValues (text, version);
+ try {
+ if (unsupportedLanguageVersions.Contains (version) && compilerParameters.LangVersion != version) {
+ // Mono's MSBuild does not currently support C# 8.
+ } else {
+ langVerStore.AppendValues (text, version);
+ }
+ } catch (Exception ex) {
+ label2.Markup = GettextCatalog.GetString ("C# Language Version (<b>{0}</b>):", ex.Message);
}
}
langVerCombo.Model = langVerStore;
@@ -112,10 +116,14 @@ namespace MonoDevelop.CSharp.Project
TreeIter iter;
if (langVerStore.GetIterFirst (out iter)) {
do {
- var val = (LanguageVersion)(int)langVerStore.GetValue (iter, 1);
- if (val == compilerParameters.LangVersion) {
- langVerCombo.SetActiveIter (iter);
- break;
+ try {
+ var val = (LanguageVersion)(int)langVerStore.GetValue (iter, 1);
+ if (val == compilerParameters.LangVersion) {
+ langVerCombo.SetActiveIter (iter);
+ break;
+ }
+ } catch (Exception ex) {
+ label2.Markup = GettextCatalog.GetString ("C# Language Version (<b>{0}</b>):", ex.Message);
}
} while (langVerStore.IterNext (ref iter));
}