我有一个自定义异常过滤器,我用它来捕获我写的自定义异常,但出于某种原因,当我抛出异常时,它不会进入过滤器.相反,我只是得到一个错误,我的异常没有被用户代码处理.任何人都可以提供一些建议/帮助,我应该如何设置这个?相关代码如下:
// controller
[CustomExceptionFilter]
public class SomeController : Controller
{
public SomeController()
{
}
public ActionResult Index()
{
SomeClass.SomeStaticMethod();
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
这是具有customexception属性的控制器
// some class (where exception is being thrown)
public class SomeClass
{
public static void SomeStaticMethod()
{
throw new MyCustomException("Test");
}
}
Run Code Online (Sandbox Code Playgroud)
这是抛出异常的类(我的测试)(我也尝试将它直接扔到控制器上).
// Custom exception filter (want this to catch all unhandled exceptions)
public class CustomExceptionFilter : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
if (filterContext.Exception.GetType() == typeof(MyCustomException))
{
// do stuff
}
} …Run Code Online (Sandbox Code Playgroud) 我正在创建一个分页类,需要将两个参数传递给我的LIMIT子句的MySQL存储过程.
我将它们作为INT传递并尝试这样的事情
SELECT *
FROM
`MyTable`
LIMIT
MyFirstParamInt, MySecondParamInt
Run Code Online (Sandbox Code Playgroud)
当我尝试保存sproc时,它给了我一个错误.有没有办法做到这一点,我只是错过了?或者我将不得不评估整个查询并执行它?
我过去使用类似的方法完成了这个:http: //javascriptkit.com/javatutors/static3.shtml
但是我不喜欢"闪烁"效果,因为页面滚动并且div需要随着滚动而移动.最近我看到很多网站都有一个元素(我认为是div或类似的东西),当页面滚动时它不会移动但是它们似乎没有......它们只是在那里而且它是一件很棒的事情.
不幸的是,我似乎无法回想起我最近看到的地方,查看来源并试图弄明白,所以我想我会转到这里,看看你们所有专家可以提供的帮助/建议.
TIA
我的场景中有一个ImageView,我想根据用户输入动态设置源.
假设我的drawable文件夹中有4张图片:aaa.png,bbb.png,ccc.png和ddd.png.
当我的应用程序加载时,我将图像设置为:aaa.png
myImageView.setImageResource(R.drawable.aaa);
Run Code Online (Sandbox Code Playgroud)
现在我有一个EditText,用户可以在其中键入bbb,我想将图像源更改为bbb.png,或者用户输入ccc,将源更改为ccc.png等.
如何在setImageResource()中动态设置参数?我尝试使用Drawable对象无济于事......
基本上我想在某人不属于我的属性中列出的角色时显示友好消息.目前我的应用程序只是将用户吐回到登录屏幕.我已经阅读了几篇关于创建一个仅扩展[AuthorizeAttribute]的自定义属性的帖子,但我认为必须有一些开箱即用的东西才能做到这一点?
有人可以指出我在正确的方向,我需要看到没有它将用户发送到登录表格,而只是拍摄他们"未授权"的消息?
如果在我的应用程序中抛出自定义错误,我需要全局重定向我的用户.我已经尝试将一些逻辑放入我的global.asax文件中以搜索我的自定义错误,如果它被抛出,执行重定向,但我的应用程序永远不会命中我的global.asax方法.它一直给我一个错误,说我的异常未被用户代码处理.
这就是我在全球范围内所拥有的.
protected void Application_Error(object sender, EventArgs e)
{
if (HttpContext.Current != null)
{
Exception ex = HttpContext.Current.Server.GetLastError();
if (ex is MyCustomException)
{
// do stuff
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的异常抛出如下:
if(false)
throw new MyCustomException("Test from here");
Run Code Online (Sandbox Code Playgroud)
当我把它放入抛出异常的文件中的try catch时,我的Application_Error方法永远不会到达.任何人都有一些关于如何全局处理这个问题的建议(处理我的自定义异常)?
谢谢.
1/15/2010编辑:这是//做什么的东西.
RequestContext rc = new RequestContext(filterContext.HttpContext, filterContext.RouteData);
string url = RouteTable.Routes.GetVirtualPath(rc, new RouteValueDictionary(new { Controller = "Home", action = "Index" })).VirtualPath;
filterContext.HttpContext.Response.Redirect(url, true);
Run Code Online (Sandbox Code Playgroud) 我在业务逻辑层中调用静态方法,出于我在此不提及的目的,需要重定向本身,而不是将信息返回给控制器以进行重定向.
我想我需要使用HttpContext对象,但我正在努力创建路由.我不能简单地做context.Response.Redirect("someController/someMethod)因为我需要包含我发送给用户的动作控制器的参数.
假设这是正确的:
HttpContext context = HttpContext.Current;
Run Code Online (Sandbox Code Playgroud)
任何人都可以提供一些语法帮助,如何使用如下对象创建路由:
new { Controller = "MyController", action = "Index", OtherParm="other value" }
Run Code Online (Sandbox Code Playgroud)
TIA
我正在编写一个应用程序,需要向我们的学生发送大量的电子邮件,这些电子邮件将从我们的数据库中选出(每封电子邮件都将个性化,包括他们的姓名,课程等......所以需要一次发送一个).
我可以在SmtpClient上循环,但是我担心随着我想要发送的数字,我最终会遇到超时问题,或者我的线程由于缺乏机器资源而被杀死.
在这一点上,我只是在寻找更好的方法来处理这个问题的建议,或者如果循环使用SmtpClient是一个好的解决方案,我应该如何处理它以防止我在上面发布的内容.
Web服务是否会成为更好的选择?
请告知,TIA
我有一个自定义异常过滤器,我通过向我的类添加[CustomExceptionFilter]属性来调用.它按照我的意愿工作,但是如果action方法返回一个局部视图(通过ajax请求),异常(基本上是一个重定向到一个未授权的页面),正在加载部分视图页.有没有办法可以强制它重新加载'父'网址?
以下是自定义异常过滤器的代码
public class CustomExceptionFilter : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
if (filterContext.Exception.GetType() == typeof(CustomSecurityException))
{
filterContext.ExceptionHandled = true;
RequestContext rc = new RequestContext(filterContext.HttpContext, filterContext.RouteData);
string url = RouteTable.Routes.GetVirtualPath(rc, new RouteValueDictionary(new { Controller = "NoAccess", action = "Index", message = filterContext.Exception.Message })).VirtualPath;
filterContext.HttpContext.Response.Redirect(url, true);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我已经在Windows 7机器上成功安装了php,但我不能在我的生活中让它读取php.ini文件.
我已经取消注释了php使用mysql的行,当我运行phpinfo()时,它从未显示出来.
我已经检查过以确保我的整个c:\驱动器上只有一个php.ini文件,它位于我的c:\ windows文件夹中.
有没有其他人遇到这个并知道一个解决方案,让PHP读取.ini,以便我可以启用一些扩展(mysql等)?
基于我在此问过的上一个问题中的建议,我正在尝试将我的套接字连接推送到我已写入服务的应用程序中.昨天我花了大部分时间来研究服务,并且实际上嘲笑了一些(一个远程,一个本地).
我的问题分为两部分:
1)在玩过本地服务和远程服务之后,我仍然不确定哪一个最符合我的情况.这在很大程度上是因为我想我仍然不太明白在另一个"过程"中运行的优势会给我什么.我正在为套接字连接生成一个新线程,无论如何我都不会与UI有任何线程争用.那么将服务放在另一个流程中能让我做到什么呢?我可能会以这种方式看到更好的表现吗?我有限的理解是,通过将其置于不同的过程中,该服务将独立于我在我的应用程序上运行的任何活动而运行.我确实有一些不同的活动,但只有其中一个需要套接字连接,无论如何每次打开活动时我都会重建.
2)我将在我的服务中为我从服务器传递的任何新数据中的套接字"监听器"(DataInputStream().readLine()).在我昨天玩的游戏之后,我无法弄清楚如何在"实时"中将它读取的数据传递给实际的"客户端"(由远程服务绑定客户端,或本地客户端本身).
非常感谢第1部分的一些建议,以及第2部分的一些帮助(代码示例?:))
TIA
编辑:添加了我的服务代码 - 使用本地服务
服务类别:
public class SocketService extends Service {
Socket s;
PrintStream os;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return myBinder;
}
private final IBinder myBinder = new LocalBinder();
public class LocalBinder extends Binder {
public SocketService getService() {
return SocketService.this;
}
}
@Override
public void onCreate() {
super.onCreate();
s = new Socket();
}
public void IsBoundable(){
Toast.makeText(this,"I bind like butter", Toast.LENGTH_LONG).show();
}
public void onStart(Intent intent, int …Run Code Online (Sandbox Code Playgroud) 我创建了一个自定义对话框,我通过RelativeLayout动态地将视图放入其中.每次显示对话框时,它都会显示我的所有子视图,但它顶部有一些我无法解释的空间.我假设这是为对话框的"标题"保留(我不会有).有没有办法删除该空间并让我的自定义对话框只包装我正在放入的内容?
这是布局的xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/handlay"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我试过让相对布局成为父节点,结果相同.
这是自定义对话框的.java.
public class HandResults extends Dialog implements DialogInterface {
HandResults hr;
Timer myTimer;
RelativeLayout handrl;
// constructor sets the layout view to handresult layout
public HandResults(Context context) {
super(context);
setContentView(R.layout.handresults);
hr = this;
}
// create a timer to remove the dialog after 3 seconds
public void showHands(){
this.show();
myTimer = null;
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
hr.cancel();
}
}, …Run Code Online (Sandbox Code Playgroud) 我根据用户输入动态地将ImageViews添加到RelativeLayout.我还创建了一个按钮,按下该按钮时,应清除该RelativeLayout的所有内容(删除所有子项).我希望有一个.clear()方法,但没有这样的运气.
有人能指出我在正确的方向吗?
RelativeLayout rel = (RelativeLayout) findViewById(R.id.iv_section);
rel.SomethingToRemoveAllChildren();
Run Code Online (Sandbox Code Playgroud)
谢谢.
asp.net-mvc ×5
android ×4
imageview ×2
redirect ×2
asp.net ×1
css ×1
css-position ×1
dialog ×1
filter ×1
iis-7 ×1
limit-clause ×1
massmail ×1
mysql ×1
php ×1
roleprovider ×1
routes ×1
scroll ×1
service ×1
smtpclient ×1
sockets ×1
web-services ×1
windows-7 ×1