这真的非常让我感到高兴,所以我希望有人可以给我一个合理的理由来解释为什么事情就像他们一样.
NotImplementedException. 你拉我的腿吧?
不,我不打算通过说,"坚持,方法实现 - 它会抛出NotImplementedException".是的,没错,你必须实现抛出NotImplementedException的方法(不像C++中的纯虚函数调用 - 现在才有意义!).虽然这很可笑,但在我看来还有一个更严重的问题.
我只是想知道,在存在NotImplementedException的情况下,任何人都可以用.Net做任何事情?您是否希望使用try catch块包装每个抽象方法调用以防止可能未实现的方法?如果你遇到这样的例外,你应该怎么做呢?
我认为没有办法测试一个方法是否在没有调用的情况下实际实现.因为调用它可能有副作用,我不能提前完成所有检查,然后运行我的算法.我必须运行我的算法,捕获NotImplementedExceptions以及一些如何将我的应用程序回滚到一些理智的状态.
这很疯狂.狂.疯.所以问题是: 为什么存在NotImplementedException?
作为先发制人的罢工,我不希望任何人回应,"因为设计师需要将其放入自动生成的代码中." 这太可怕了.在您提供实现之前,我宁愿不编译自动生成的代码.例如,自动生成的实现可能是"throw NotImplementedException;" 其中未定义NotImplementedException!
有没有人捕获并处理过NotImplementedException?你有没有在你的代码中留下NotImplementedException?如果是这样,这是代表定时炸弹(即,你不小心将它留在那里),还是设计缺陷(该方法不应该实施,永远不会被调用)?
我也非常怀疑NotSupportedException ...不支持?什么?如果它不受支持,为什么它是你的界面的一部分?微软的任何人都可以拼写不正当的继承吗?但是如果我对这个问题没有太多的滥用,我可能会提出另一个问题.
附加信息:
这是一个有趣的读物.
似乎与Brad Abrams有一个强烈的一致意见,"NotImplementedException是针对尚未实现的功能,但实际上应该(并且将会是).类似于在构建类时可能开始的内容,获取所有方法抛出NotImplementedException,然后用实际代码刷新它们......"
来自Jared Parsons的注释非常弱,应该可以忽略:NotImplementedException:当类型由于任何其他原因没有实现方法时抛出此异常.
在MSDN上的主题更弱,只是说,"当一个请求的方法或操作未实现时引发的异常."
.net exception-handling exception notimplementedexception notsupportedexception
我正在使用Apache POI API从Excel文件中获取值.除了含有公式的单元格外,一切都很好.事实上,cell.getStringCellValue()正在返回单元格中使用的公式而不是单元格的值.
我尝试使用evaluateFormulaCell()方法,但它不起作用,因为我使用GETPIVOTDATA Excel公式,并且此公式未在API中实现:
Exception in thread "main" org.apache.poi.ss.formula.eval.NotImplementedException: Error evaluating cell Landscape!K11
at org.apache.poi.ss.formula.WorkbookEvaluator.addExceptionInfo(WorkbookEvaluator.java:321)
at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:288)
at org.apache.poi.ss.formula.WorkbookEvaluator.evaluate(WorkbookEvaluator.java:221)
at org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.evaluateFormulaCellValue(HSSFFormulaEvaluator.java:320)
at org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.evaluateFormulaCell(HSSFFormulaEvaluator.java:213)
at fromExcelToJava.ExcelSheetReader.unAutreTest(ExcelSheetReader.java:193)
at fromExcelToJava.ExcelSheetReader.main(ExcelSheetReader.java:224)
Caused by: org.apache.poi.ss.formula.eval.NotImplementedException: GETPIVOTDATA
at org.apache.poi.hssf.record.formula.functions.NotImplementedFunction.evaluate(NotImplementedFunction.java:42)
Run Code Online (Sandbox Code Playgroud) 我正在开发一个ASP.net MVC2应用程序,并实现导出到.csv控制器操作,但是当我添加标头以强制下载时,调试器中出现以下内容:
"此操作需要IIS集成管道模式"
我在谷歌的网站上搜索过,但尚未解决这个问题.我在用:
ASP.net的应用程序池以集成管道模式配置,因为我不明白这个问题.
社区能协助我解决这个问题并向我解释错误吗?
Scala中常见的标准异常是什么?我特别感兴趣的是.Net的NotImplementedException等价叫做?
更新:关于the的答案NotImplementedException似乎是
org.apache.commons.lang.NotImplementedException
在以下情况下可以使用哪些方法
我很确定以前版本的Visual Studio Code Analysis警告使用NotImplementedException,即包含此内容的任何成员
throw new NotImplementedException();
Run Code Online (Sandbox Code Playgroud)
会发出CA警告.
Visual Studio 2008似乎不是这种情况.
这个特定的规则被删除了,还是我只是想象它曾经存在过?
我想???在IntelliJ TODO列表中看到所有出现的内容(或者以任何其他方式查看我的Scala项目中所有未实现方法的列表).似乎在TODO设置中添加模式\ b \?\?\?\ b.*不起作用.
我想绘制一个自定义线帽 - 一个半径为 r 的等边三角形。显然我不能:
Dim triangleSide As Single = CSng(3 * r / Math.Sqrt(3))
Dim triangleHeight As Single = CSng(3 * r / 2)
path = New GraphicsPath()
Dim points() As PointF = New PointF() { _
New PointF(-triangleSide / 2, 0), _
New PointF(triangleSide / 2, 0), _
New PointF(0, triangleHeight) }
path.AddLines(points)
' Not Implemented Exception, Was is Das? '
_HlpCap = New CustomLineCap(path, Nothing)
Run Code Online (Sandbox Code Playgroud)
我有什么问题还是只是一个框架错误?
编辑:
Mark Cidade 评论后,我尝试使用(Nothing, path)它并有所帮助,但我需要填充三角形,而不是仅将其描边......
我正在尝试使用numpy检查用户输入是否为数字,我尝试过使用:
from numpy import *
a = input("\n\nInsert A: ")
if isnan(a) == True:
print 'Not a number...'
else:
print "Yep,that's a number"
Run Code Online (Sandbox Code Playgroud)
它本身就可以正常工作,但是当我将它嵌入到一个函数中时,例如:
来自numpy import*
def test_this(a):
if isnan(a) == True:
print '\n\nThis is not an accepted type of input for A\n\n'
raise ValueError
else:
print "Yep,that's a number"
a = input("\n\nInsert A: ")
test_this(a)
Run Code Online (Sandbox Code Playgroud)
然后我得到一个NotImplementationError,说它没有为这种类型实现,任何人都可以解释这是如何工作的?
任何帮助将不胜感激,再次感谢.
我已将Plugin.MediaManager和添加Plugin.MediaManager.Forms到我的xamarin forms项目中以播放视频。
CrossMediaManager.Current.Init(this);
Run Code Online (Sandbox Code Playgroud)
当我尝试添加上面的代码时,它显示错误(方法 Init() 没有重载;)
但是在使用以下代码行运行项目时,在 android 上出现异常。
CrossMediaManager.Current.Init();
Run Code Online (Sandbox Code Playgroud)
System.NotImplementedException: '此功能未在此程序集的可移植版本中实现。您应该从主应用程序项目中引用 NuGet 包,以便引用特定于平台的实现。
IOS 和 UWP 应用程序运行良好,只有 android 项目有此问题。请帮我解决这个问题。